local qsj = 取随机数
local 名称 = ""
local 任务处理类 = class()

function 任务处理类:初始化()
	self.快捷坐标 = nil
end

function 任务处理类:取任务说明(玩家id, 任务id)
	self.快捷坐标 = nil
	local 说明 = {}

	if 任务数据[任务id] == nil then
		return {}
	else
		任务数据[任务id].坐标 = nil

		if tonumber(任务数据[任务id].类型) ~= nil then
			if 任务数据[任务id].类型 == 999 then
				return self:取新手指引说明(玩家id, 任务id)
			elseif 任务数据[任务id].类型 == 998 then
				return self:取商人的鬼魂(玩家id, 任务id)
			elseif 任务数据[任务id].类型 == 898 then
				return self:取妖风支线(玩家id, 任务id)
			elseif 任务数据[任务id].类型 == 997 then
				return self:取玄奘身世(玩家id, 任务id)
			elseif 任务数据[任务id].类型 == 996 then
				return self:大战心魔(玩家id, 任务id)
			elseif 任务数据[任务id].类型 == 995 then
				return self:含冤小白龙(玩家id, 任务id)
			elseif 任务数据[任务id].类型 == 994 then
				return self:女娲神迹(玩家id, 任务id)
			elseif 任务数据[任务id].类型 == 993 then
				return self:八戒悟空(玩家id, 任务id)
			elseif 任务数据[任务id].类型 == 400 then
				return self:取新枯萎金莲支线(玩家id, 任务id)
			elseif 任务数据[任务id].类型 == 401 then
				return self:取桃园浣熊支线(玩家id, 任务id)
			elseif 任务数据[任务id].类型 == 402 then
				return self:取新手指引任务(玩家id, 任务id)
			elseif 任务数据[任务id].类型 == 1166 then
				return 天降辰星:任务说明(玩家id, 任务id)
			elseif 任务数据[任务id].类型 == 500 then
				return self:取梦战第一章(玩家id, 任务id)
			elseif 任务数据[任务id].类型 == 501 then
				return self:取梦战第二章(玩家id, 任务id)
			elseif 任务数据[任务id].类型 == 502 then
				return self:取梦战第三章(玩家id, 任务id)
			elseif 任务数据[任务id].类型 == 503 then
				return self:取梦战第四章(玩家id, 任务id)
			elseif 任务数据[任务id].类型 == 504 then
				return self:取梦战第五章(玩家id, 任务id)
			elseif 任务数据[任务id].类型 >= 7000 and 任务数据[任务id].类型 <= 7500 then
				return 副本处理类:取副本任务说明(玩家id, 任务id)
			end
		end

		if 任务数据[任务id].类型 == 1 then
			说明 = {
				"变身卡",
				"#G你的变身效果还可持续#R/" .. 取分(任务数据[任务id].结束 - (os.time() - 任务数据[任务id].起始)) .. "#G/分钟。"
			}
		elseif 任务数据[任务id].类型 == 2 then
			说明 = {
				"双倍时间",
				"#G你的双倍时间还可持续#R/" .. 取分(任务数据[任务id].结束 - (os.time() - 任务数据[任务id].起始)) .. "#G/分钟。"
			}
		elseif 任务数据[任务id].类型 == 3 then
			说明 = {
				"精修时间",
				"#G你的精修时间还可持续#R/" .. 取分(任务数据[任务id].结束 - (os.time() - 任务数据[任务id].起始)) .. "#G/分钟。",
				"野外战斗、抓鬼、封妖、官职、种族等活动任务中所获得的经验、银子、储备翻倍。本效果可以与双倍时间叠加。"
			}
		elseif 任务数据[任务id].类型 == 4 then
			local NPC = 取NPC寻路信息(任务数据[任务id].地图编号, 任务数据[任务id].名称, 任务数据[任务id].x, 任务数据[任务id].y)
			说明 = {
				"宝图任务",
				format("前往#Y/%s(%s,%s)#W/#S/处缉拿强盗#R/%s", 取地图名称(任务数据[任务id].地图编号), 任务数据[任务id].x, 任务数据[任务id].y, NPC),
				"完成后可获得少量金钱、几率获得藏宝图"
			}
		elseif 任务数据[任务id].类型 == 209 then
			NPC = 取NPC寻路信息(任务数据[任务id].地图编号, 任务数据[任务id].名称, 任务数据[任务id].x, 任务数据[任务id].y)
			说明 = {
				"悬赏任务",
				format("前往#Y/%s(%s,%s)#W/#S/处缉拿#R/%s#S/。此任务难度较高，请尽量与一些实力超群的玩家组队完成。#R(剩余%s分钟)", 取地图名称(任务数据[任务id].地图编号), 任务数据[任务id].x, 任务数据[任务id].y, NPC, 取分(任务数据[任务id].结束 - (os.time() - 任务数据[任务id].起始))),
				"完成后可获得大量储备与高级宝石"
			}
		elseif 任务数据[任务id].类型 == 5 then
			说明 = {
				"打造任务",
				format("#S/你的#R/%s#S正在制作中，但还需要%s块%s才可完成。请赶紧去寻找吧。", 任务数据[任务id].名称, 任务数据[任务id].数量, 任务数据[任务id].石头)
			}
		elseif 任务数据[任务id].类型 == 7758 then
			说明 = {
				"熔合任务",
				format("你的#R/%s#S/已经在制作中了，但还欠缺#G%s#R(%s)#S以及#G%s#R(%s)#S以及#G%s#R(%s)#S，注意药品要准备99个。", 任务数据[任务id].名称, 任务数据[任务id].物品类型[1], 任务数据[任务id].物品[1], 任务数据[任务id].物品类型[2], 任务数据[任务id].物品[2], 任务数据[任务id].物品类型[3], 任务数据[任务id].物品[3])
			}
		elseif type(任务数据[任务id].类型) == "number" and 任务数据[任务id].类型 >= 180 and 任务数据[任务id].类型 <= 183 then
			说明 = 大闹天宫:取任务说明(玩家id, 任务id)
		elseif type(任务数据[任务id].类型) == "number" and 任务数据[任务id].类型 >= 34480 and 任务数据[任务id].类型 <= 34489 then
			说明 = 黑风山:取任务说明(玩家id, 任务id)
		elseif 任务数据[任务id].类型 == 6 then
			local NPC1 = 取NPC寻路信息(1001, "大雁塔", 441, 36)
			local NPC2 = 取NPC寻路信息(地图名称转地图id("大唐国境"), "大唐国境", 322, 202)
			local NPC3 = 取NPC寻路信息(地图名称转地图id("大唐境外"), "大唐境外", 345, 72)
			local NPC4 = 取NPC寻路信息(地图名称转地图id("长寿郊外"), "长寿郊外", 77, 98)
			local NPC5 = 取NPC寻路信息(地图名称转地图id("花果山"), "花果山", 23, 106)
			说明 = {
				"赏金任务",
				format("在#R/%s1-6层，%s，%s，%s，%s#完成指定的战斗次数\n你还需要在这些场景中战斗#Y%s#次才可获得奖励。", NPC1, NPC2, NPC3, NPC4, NPC5, 任务数据[任务id].数量),
				"可获得经验、银子或储备"
			}
		elseif 任务数据[任务id].类型 == 66 then
			local NPC1 = 取NPC寻路信息(地图名称转地图id("东海湾"), "东海湾", 76, 94)
			local NPC2 = 取NPC寻路信息(地图名称转地图id("东海岩洞"), "东海岩洞", 12, 77)
			local NPC3 = 取NPC寻路信息(地图名称转地图id("东海海底"), "东海海底", 90, 30)
			local NPC4 = 取NPC寻路信息(地图名称转地图id("沉船"), "沉船", 27, 14)
			local NPC5 = 取NPC寻路信息(地图名称转地图id("江南野外"), "江南野外", 72, 69)
			local NPC6 = 取NPC寻路信息(地图名称转地图id("大唐国境"), "大唐国境", 322, 202)
			local NPC7 = 取NPC寻路信息(地图名称转地图id("大唐境外"), "大唐境外", 345, 72)
			local NPC8 = 取NPC寻路信息(地图名称转地图id("长寿郊外"), "长寿郊外", 77, 98)
			local NPC9 = 取NPC寻路信息(地图名称转地图id("花果山"), "花果山", 23, 106)
			说明 = {
				"新手任务",
				format("在#R/%s、%s、%s、%s、%s、%s、%s、%s、%s#完成指定的战斗次数\n你还需要在这些场景中战斗#Y%s#次才可获得奖励。", NPC1, NPC2, NPC3, NPC4, NPC5, NPC6, NPC7, NPC8, NPC9, 任务数据[任务id].数量),
				"可获得经验、银子或储备"
			}
		elseif 任务数据[任务id].类型 == 7 then
			if 科举数据[玩家id] == nil then
				说明 = {
					"科举活动",
					"数据异常，已取消该任务，请重新打开任务界面刷新纪录"
				}

				玩家数据[玩家id].角色:取消任务(任务id)

				return 说明
			end

			说明 = {
				"科举活动",
				format("#S/你当前正在参加科举活动，请在#R/%s#S/分内完成本活动。逾期将自动失去本轮活动资格。当前已回答#R/%s#S/道题目，其中回答正确#R/%s#S/道,回答错误#R/%s#S/道", 取分(任务数据[任务id].结束 - (os.time() - 任务数据[任务id].起始)), 科举数据[玩家id].总数, 科举数据[玩家id].答对, 科举数据[玩家id].答错),
				"可获得经验、银子、物品奖励"
			}
		elseif 任务数据[任务id].类型 == 8 then
			local NPC = 取NPC寻路信息(任务数据[任务id].地图编号, 任务数据[任务id].名称, 任务数据[任务id].x, 任务数据[任务id].y)
			说明 = {
				"捉鬼任务",
				format("前往#Y/%s(%s,%s)#W/#S/处降服#G/%s#R(当前第%s次)", 任务数据[任务id].地图名称, 任务数据[任务id].显示x, 任务数据[任务id].显示y, NPC, 玩家数据[玩家id].角色.数据.捉鬼次数),
				"可获得经验、银子，第10次任务可几率获得物品"
			}
		elseif 任务数据[任务id].类型 == 9000 then
			local NPC = 取NPC寻路信息(任务数据[任务id].地图编号, 任务数据[任务id].名称, 任务数据[任务id].x, 任务数据[任务id].y)
			说明 = {
				"鬼王任务",
				format("降服千年厉鬼(第#Y%s#个)：去#Y/%s(%s,%s)#W/#S/降服#G/%s", 玩家数据[玩家id].角色.数据.鬼王次数, 任务数据[任务id].地图名称, 任务数据[任务id].显示x, 任务数据[任务id].显示y, NPC),
				"可获得经验、银子，第10次任务可几率获得物品"
			}
		elseif 任务数据[任务id].类型 == 9001 then
			说明 = {
				"鬼王支线",
				format("去#P%s#超度那些游荡在外的孤魂野鬼。", 任务数据[任务id].地图名称)
			}
		elseif 任务数据[任务id].类型 == 9 then
			说明 = {
				"摄妖香",
				"#G你的摄妖香效果还可持续#R/" .. 取分(任务数据[任务id].结束 - (os.time() - 任务数据[任务id].起始)) .. "#G/分钟。",
				"在低于自身等级+10的场景中不会触发暗雷战斗。"
			}
		elseif 任务数据[任务id].类型 == 7756 then
			说明 = {
				"2倍经验丹",
				"#G你的2倍经验丹效果还可持续#R/" .. 取分(任务数据[任务id].结束 - (os.time() - 任务数据[任务id].起始)) .. "#G/分钟。"
			}
		elseif 任务数据[任务id].类型 == 7755 then
			说明 = {
				"3倍经验丹",
				"#G你的3倍经验丹效果还可持续#R/" .. 取分(任务数据[任务id].结束 - (os.time() - 任务数据[任务id].起始)) .. "#G/分钟。"
			}
		elseif 任务数据[任务id].类型 == 7757 then
			说明 = {
				"10倍经验丹",
				"#G你的10倍经验丹效果还可持续#R/" .. 取分(任务数据[任务id].结束 - (os.time() - 任务数据[任务id].起始)) .. "#G/分钟。"
			}
		elseif 任务数据[任务id].类型 == 10 then
			说明 = {
				"罗羹效果",
				format([[
#G/在每场战斗结束后自动恢复气血和魔法
#P当前剩余
#Y/%s#G点气血
#Y/%s#G/点魔法]], 数字转简(任务数据[任务id].气血), 数字转简(任务数据[任务id].魔法))
			}
		elseif 任务数据[任务id].类型 == 11 then
			local NPC = 取NPC寻路信息(任务数据[任务id].地图编号, 任务数据[任务id].名称, 任务数据[任务id].x, 任务数据[任务id].y)
			说明 = {
				"初出江湖",
				format("前往#Y/%s(%s,%s)#W/处查明%s的身份#R(当前第%s次)", 任务数据[任务id].地图名称, 任务数据[任务id].x, 任务数据[任务id].y, NPC, 玩家数据[玩家id].角色.数据.江湖次数),
				"可获得经验、银子、储备金"
			}
		elseif 任务数据[任务id].类型 == 12 then
			local NPC = 取NPC寻路信息(任务数据[任务id].地图编号, 任务数据[任务id].名称, 任务数据[任务id].x, 任务数据[任务id].y)
			说明 = {
				"皇宫飞贼",
				format("请前往#Y%s#R(%s,%s)缉拿%s,剩余时间%s分钟。", 任务数据[任务id].地图名称, 任务数据[任务id].x, 任务数据[任务id].y, NPC, 取分(任务数据[任务id].结束 - (os.time() - 任务数据[任务id].起始))),
				"可获得经验、银子、储备金"
			}
		elseif 任务数据[任务id].类型 == 15 then
			NPC = 取NPC寻路信息(任务数据[任务id].地图编号, 任务数据[任务id].名称, 任务数据[任务id].x, 任务数据[任务id].y)
			说明 = {
				"皇宫贼王",
				format("请前往#Y%s#R(%s,%s)缉拿%s,剩余时间%s分钟。", 任务数据[任务id].地图名称, 任务数据[任务id].x, 任务数据[任务id].y, NPC, 取分(任务数据[任务id].结束 - (os.time() - 任务数据[任务id].起始))),
				"可获得经验、银子、储备金"
			}
		elseif 任务数据[任务id].类型 == 200 then
			NPC = 取NPC寻路信息(任务数据[任务id].地图编号, 任务数据[任务id].名称, 任务数据[任务id].x, 任务数据[任务id].y)
			说明 = {
				"降妖除魔",
				format("去#G%s#R(%s,%s)#W消灭#R%s#Z剩余时间%s分钟。", 任务数据[任务id].地图名称, 任务数据[任务id].x, 任务数据[任务id].y, NPC, 取分(任务数据[任务id].结束 - (os.time() - 任务数据[任务id].起始))),
				"可获得经验、银子、储备金"
			}
		elseif 任务数据[任务id].类型 == 777 then
			说明 = {
				"助战变身卡",
				"#W你的变身效果还可持续#R/" .. 取分(任务数据[任务id].结束 - (os.time() - 任务数据[任务id].起始)) .. "#G/分钟"
			}
		elseif 任务数据[任务id].类型 == 13 then
			任务数据[任务id].坐标 = 取假人表1(任务数据[任务id].地图编号, nil, 任务数据[任务id].名称)

			if 任务数据[任务id].分类 == 11 then
				local NPC = 取NPC自动寻路数据(任务数据[任务id].名称, 任务数据[任务id].地图编号)
				说明 = {
					"修炼任务",
					format("#S找到#Y%s#S的#R%s#Y%s#S,当前第#R%s#S环，任务积分#R%s#S分。", 任务数据[任务id].地图名称, NPC, 坐标转换文本(任务数据[任务id].坐标), 任务数据[任务id].次数, 任务数据[任务id].积分),
					"可获得召唤兽或人物修炼经验，在完成第100次任务时将获得随机书铁"
				}
			elseif 任务数据[任务id].分类 == 12 then
				local NPC = 取NPC自动寻路数据(任务数据[任务id].名称, 任务数据[任务id].地图编号)
				说明 = {
					"修炼任务",
					format("#S将#Y%s#S交给#Y%s#S的#R%s#Y%s#S,当前第#R%s#S环，任务积分#R%s#S分。", 取装备详细说明(任务数据[任务id].物品), 任务数据[任务id].地图名称, NPC, 坐标转换文本(任务数据[任务id].坐标), 任务数据[任务id].次数, 任务数据[任务id].积分),
					"可获得召唤兽或人物修炼经验，在完成第100次任务时将获得随机书铁。本任务所需的物品可以在自身等级对应的场景暗雷战斗中几率获得。"
				}
			elseif 任务数据[任务id].分类 == 13 or 任务数据[任务id].分类 == 14 then
				local NPC = 取NPC自动寻路数据(任务数据[任务id].名称, 任务数据[任务id].地图编号)
				说明 = {
					"修炼任务",
					format("#S将#Y%s#S交给#Y%s#S的#R%s#Y%s#S,当前第#R%s#S环，任务积分#R%s#S分。", 取装备详细说明(任务数据[任务id].物品), 任务数据[任务id].地图名称, NPC, 坐标转换文本(任务数据[任务id].坐标), 任务数据[任务id].次数, 任务数据[任务id].积分),
					"可获得召唤兽或人物修炼经验，在完成第100次任务时将获得随机书铁。本任务所需的物品可以在自身等级对应的场景暗雷战斗中几率获得。"
				}
			elseif 任务数据[任务id].分类 == 15 then
				local NPC = 取NPC自动寻路数据(任务数据[任务id].名称, 任务数据[任务id].地图编号)
				说明 = {
					"修炼任务",
					format("#S将#Y变异%s#S交给#Y%s#S的#R%s#Y%s#S,当前第#R%s#S环，任务积分#R%s#S分。", 任务数据[任务id].bb, 任务数据[任务id].地图名称, NPC, 坐标转换文本(任务数据[任务id].坐标), 任务数据[任务id].次数, 任务数据[任务id].积分),
					"可获得召唤兽或人物修炼经验，在完成第100次任务时将获得随机书铁。本任务所需的变异召唤兽可以在自身等级对应的场景暗雷战斗中几率遇见。"
				}
			elseif 任务数据[任务id].分类 == 5 then
				local NPC = 取NPC自动寻路数据(任务数据[任务id].名称, 任务数据[任务id].地图编号)
				说明 = {
					"修炼任务",
					format("#S打败#Y%s#S的#R%s#Y%s#S麾下的对手,当前第#R%s#S环，任务积分#R%s#S分。", 任务数据[任务id].地图名称, NPC, 坐标转换文本(任务数据[任务id].坐标), 任务数据[任务id].次数, 任务数据[任务id].积分),
					"可获得召唤兽或人物修炼经验，在完成第100次任务时将获得随机书铁。"
				}
			end
		elseif 任务数据[任务id].类型 == 14 then
			说明 = {
				"点化任务",
				"#S找到长安城五行大师进行装备点化。"
			}
		elseif 任务数据[任务id].类型 == 22 then
			说明 = {
				"摇钱树",
				format("你在#Y/%s(%s,%s)#W/#S/附近种下了一颗摇钱树", 取地图名称(任务数据[任务id].地图编号), 任务数据[任务id].x, 任务数据[任务id].y),
				"完成后可获得随机物品、银子、仙玉奖励"
			}
		elseif 任务数据[任务id].类型 == 24 then
			说明 = {
				"江湖大盗",
				format("#Y/%s(%s,%s)#W/#S/附近的强盗蠢蠢欲动,意欲图谋你的摇钱树果实！", 取地图名称(任务数据[任务id].地图编号), 任务数据[任务id].x, 任务数据[任务id].y),
				"完成后增加一次摇晃次数！"
			}
		elseif 任务数据[任务id].类型 == 107 then
			NPC = 取NPC寻路信息(任务数据[任务id].地图编号, Q_门派编号[任务数据[任务id].当前序列] .. "护法", 任务数据[任务id].x, 任务数据[任务id].y)
			说明 = {
				"门派闯关",
				format("你正在进行门派闯关活动，请立即前往#P/%s#S/接受%s的考验,截止到目前为止，你已成功完成了#R/%s#S/次考验。", Q_门派编号[任务数据[任务id].当前序列], NPC, 15 - #任务数据[任务id].闯关序列),
				"可获得经验、银子、物品奖励"
			}
		elseif 任务数据[任务id].类型 == 109 then
			说明 = {
				"游泳比赛",
				format("请立即前往#Y/%s(%s,%s)#S/%s号裁判处报道。", 取地图名称(Q_游泳数据[任务数据[任务id].序列].z), Q_游泳数据[任务数据[任务id].序列].x, Q_游泳数据[任务数据[任务id].序列].y, 任务数据[任务id].序列),
				"可获得经验、储备奖励"
			}
			任务数据[任务id].地图编号 = Q_游泳数据[任务数据[任务id].序列].z
			任务数据[任务id].x = Q_游泳数据[任务数据[任务id].序列].x
			任务数据[任务id].y = Q_游泳数据[任务数据[任务id].序列].y
		elseif 任务数据[任务id].类型 == 34470 then
			local 副本id = 任务数据[任务id].副本id

			if 副本数据.天蓬娶亲.进行[副本id] == nil then
				说明 = {
					"天蓬娶亲",
					"#S您的副本已经完成"
				}
			else
				local 进程 = 副本数据.天蓬娶亲.进行[副本id].进程
				local 序列 = 副本数据.天蓬娶亲.进行[副本id].序列

				if 进程 == 1 then
					任务数据[任务id].坐标 = 取假人表1(任务数据[任务id].地图编号, nil, "猪头七")
					说明 = {
						"天蓬娶亲",
						format("#S打败#Y猪头七(%s,%s)", 任务数据[任务id].坐标.X, 任务数据[任务id].坐标.Y)
					}
				elseif 进程 == 2 then
					任务数据[任务id].坐标 = 取假人表1(任务数据[任务id].地图编号, nil, "哨探头领")
					说明 = {
						"天蓬娶亲",
						format("#S打败#Y哨探头领(%s,%s)", 任务数据[任务id].坐标.X, 任务数据[任务id].坐标.Y)
					}
				elseif 进程 == 3 then
					任务数据[任务id].坐标 = 取假人表1(任务数据[任务id].地图编号, nil, "山门守将")
					说明 = {
						"天蓬娶亲",
						format("#S打败#Y山门守将(%s,%s)", 任务数据[任务id].坐标.X, 任务数据[任务id].坐标.Y)
					}
				elseif 进程 == 4 then
					任务数据[任务id].坐标 = 取假人表1(任务数据[任务id].地图编号, nil, "天蓬元帅")
					说明 = {
						"天蓬娶亲",
						format("#S打败#Y天蓬元帅(%s,%s)", 任务数据[任务id].坐标.X, 任务数据[任务id].坐标.Y)
					}
				end
			end
		elseif 任务数据[任务id].类型 == 34471 then
			local 副本id = 任务数据[任务id].副本id

			if 副本数据.白龙闹海.进行[副本id] == nil then
				说明 = {
					"白龙闹海",
					"#S您的副本已经完成"
				}
			else
				local 进程 = 副本数据.白龙闹海.进行[副本id].进程
				local 序列 = 副本数据.白龙闹海.进行[副本id].序列

				if 进程 == 1 then
					任务数据[任务id].坐标 = {
						X = 69,
						Y = 27
					}
					说明 = {
						"白龙闹海",
						format("#S找到#Y小白龙(%s,%s)", 任务数据[任务id].坐标.X, 任务数据[任务id].坐标.Y)
					}
				elseif 进程 == 2 then
					任务数据[任务id].坐标 = 取假人表1(任务数据[任务id].地图编号, nil, "万圣公主")
					说明 = {
						"白龙闹海",
						format("#S找到#Y万圣公主(%s,%s)", 任务数据[任务id].坐标.X, 任务数据[任务id].坐标.Y)
					}
				elseif 进程 == 3 then
					任务数据[任务id].坐标 = {
						X = 12,
						Y = 50
					}
					说明 = {
						"白龙闹海",
						format("#S教训#Y九头虫(%s,%s)", 任务数据[任务id].坐标.X, 任务数据[任务id].坐标.Y)
					}
				elseif 进程 == 4 then
					任务数据[任务id].坐标 = {
						X = 19,
						Y = 54
					}
					说明 = {
						"白龙闹海",
						format("#S打败#Y九头虫相柳合体(%s,%s)", 任务数据[任务id].坐标.X, 任务数据[任务id].坐标.Y)
					}
				end
			end
		elseif 任务数据[任务id].类型 == 120 then
			local 副本id = 任务数据[任务id].副本id

			if 副本数据.乌鸡国.进行[副本id] == nil then
				说明 = {
					"乌鸡国",
					"#S您的副本已经完成"
				}
			else
				local 进程 = 副本数据.乌鸡国.进行[副本id].进程
				local 序列 = 副本数据.乌鸡国.进行[副本id].序列

				if 进程 == 1 then
					说明 = {
						"乌鸡国",
						format("#S消灭%s只芭蕉木妖\n#G(完成度：%s：%s)", 副本减负.乌鸡国[1], 副本数据.乌鸡国.进行[副本id].木妖数量, 副本减负.乌鸡国[1])
					}
				elseif 进程 == 2 then
					说明 = {
						"乌鸡国",
						format("#S寻求%s个热心仙人的帮忙\n#G(完成度：%s：%s)", 副本减负.乌鸡国[2], 副本数据.乌鸡国.进行[副本id].和尚数量, 副本减负.乌鸡国[2])
					}
				elseif 进程 == 3 then
					local 名称 = {
						"囚神妖怪",
						"拘灵妖怪",
						"缚仙妖怪"
					}
					local 表述 = {}

					for n = 1, 3 do
						if 序列[n] ~= true then
							表述[#表述 + 1] = 名称[n]
						end
					end

					local 名称 = ""

					for n = 1, #表述 do
						if n == #表述 then
							名称 = 名称 .. 表述[n]
						else
							名称 = 名称 .. 表述[n] .. "、"
						end
					end

					说明 = {
						"乌鸡国",
						format("#S消灭皇宫的#R%s#S", 名称)
					}
				elseif 进程 == 4 then
					说明 = {
						"乌鸡国",
						format("#S消灭%s个鬼祟小怪\n#G(完成度：%s：%s)", 副本减负.乌鸡国[3], 副本数据.乌鸡国.进行[副本id].鬼祟数量, 副本减负.乌鸡国[3])
					}
				elseif 进程 == 5 then
					说明 = {
						"乌鸡国",
						format("#S寻找出真正的乌鸡国王，与真正的国王战斗胜利后本副本将自动结束")
					}
				end

				说明[3] = "完成后可获得经验、银子、物品奖励"
			end
		elseif 任务数据[任务id].类型 == 130 then
			local 副本id = 任务数据[任务id].副本id

			if 副本数据.车迟斗法.进行[副本id] == nil then
				说明 = {
					"车迟斗法",
					"#S您的副本已经完成"
				}
			else
				local 进程 = 副本数据.车迟斗法.进行[副本id].进程
				local 序列 = 副本数据.车迟斗法.进行[副本id].序列

				if 进程 == 1 then
					说明 = {
						"车迟斗法",
						format("#S通过找到有个道士回答问题获得木材完成道观建设\n#G(完成度：%s：%s)", 副本数据.车迟斗法.进行[副本id].车迟木材, 副本减负.车迟斗法[1])
					}
				elseif 进程 == 2 then
					说明 = {
						"车迟斗法",
						format("#S找到有个和尚帮忙")
					}
				elseif 进程 == 3 then
					说明 = {
						"车迟斗法",
						format("#S帮助有个和尚干掉贡品\n#G(完成度：%s：%s)", 副本数据.车迟斗法.进行[副本id].车迟贡品, 副本减负.车迟斗法[2])
					}
				elseif 进程 == 4 then
					local 名称 = {
						"道德天尊",
						"灵宝天尊",
						"元始天尊"
					}
					local 表述 = {}

					for n = 1, 3 do
						if 序列[n] ~= true then
							表述[#表述 + 1] = 名称[n]
						end
					end

					local 名称 = ""

					for n = 1, #表述 do
						if n == #表述 then
							名称 = 名称 .. 表述[n]
						else
							名称 = 名称 .. 表述[n] .. "、"
						end
					end

					说明 = {
						"车迟斗法",
						format("#S消灭假扮的#R%s#S", 名称)
					}
				elseif 进程 == 5 then
					说明 = {
						"车迟斗法",
						format("#S妖怪都跑到九霄云外，找到有个和尚问问")
					}
				elseif 进程 == 6 then
					说明 = {
						"车迟斗法",
						format("#S找到有个神仙帮忙")
					}
				elseif 进程 == 7 then
					local 名称 = {
						"雷公",
						"电母",
						"雨师"
					}

					if 副本数据.车迟斗法.进行[副本id].不动 then
						名称 = {
							"你不动",
							"你不动",
							"我不动"
						}
					end

					local 表述 = {}

					for n = 1, 3 do
						if 序列[n] ~= true then
							表述[#表述 + 1] = 名称[n]
						end
					end

					local 名称 = ""

					for n = 1, #表述 do
						if n == #表述 then
							名称 = 名称 .. 表述[n]
						else
							名称 = 名称 .. 表述[n] .. "、"
						end
					end

					说明 = {
						"车迟斗法",
						format("#S消灭#R%s#S", 名称)
					}
				elseif 进程 == 8 then
					说明 = {
						"车迟斗法",
						format("#S找到电母打听妖怪的下落")
					}
				elseif 进程 == 9 then
					说明 = {
						"车迟斗法",
						format("#S找到大圣进行变化")
					}
				elseif 进程 == 10 then
					说明 = {
						"车迟斗法",
						format("#S变化强化了，去找假道士算帐")
					}
				elseif 进程 == 11 then
					说明 = {
						"车迟斗法",
						format("#S恭喜你，完成了车迟斗法，去领取自己的奖励宝箱吧！！!")
					}
				elseif 进程 == 12 then
					说明 = {
						"车迟斗法",
						format("#S恭喜你，完成了车迟斗法，获得了更多的宝箱！！!")
					}
				end

				说明[3] = "完成后可获得经验、银子、物品奖励"
			end
		elseif 任务数据[任务id].类型 == 150 then
			local 副本id = 任务数据[任务id].副本id

			if 副本数据.水陆大会.进行[副本id] == nil then
				说明 = {
					"水陆大会",
					"#S您的副本已经完成"
				}
			else
				local 进程 = 副本数据.水陆大会.进行[副本id].进程

				if 进程 == 1 then
					说明 = {
						"水陆大会",
						format("#S找到道场督僧，看看有什么需要帮忙的")
					}
					任务数据[任务id].地图编号 = 6024
					任务数据[任务id].人物 = "道场督僧"
				elseif 进程 == 2 then
					说明 = {
						"水陆大会",
						format("#S水陆大会的道场建设完成了，与玄奘法师对话")
					}
					任务数据[任务id].地图编号 = 6024
					任务数据[任务id].人物 = "道场督僧"
				elseif 进程 == 3 then
					说明 = {
						"水陆大会",
						format("#S程咬金似乎受伤了，赶紧去问问是怎么回事吧。")
					}
					任务数据[任务id].地图编号 = 6024
					任务数据[任务id].人物 = "道场督僧"
				elseif 进程 == 4 then
					说明 = {
						"水陆大会",
						format([[
#S原众人被突闪出现的妖魔所掳，请各位速去道场后院打探
触发#R翼虎将军#和#R蝰蛇将军#
两场战斗
当前阶段#G两场战斗必输]])
					}
					任务数据[任务id].地图编号 = 6024
					任务数据[任务id].y = 18
					任务数据[任务id].x = 106
				elseif 进程 == 5 then
					说明 = {
						"水陆大会",
						format("#S道场后院妖魔好是凶猛，听闻长安土地公公消息，观音幻化成#R%s#S和#R%s#S模样正寻经善之人，想必有破解之法，快去寻找寻找\n#G触发两个NPC对话后#\n就可以回来击杀#R虎翼#和#R蝰蛇将军#了!", 副本数据.水陆大会.进行[副本id].人物[1].名称, 副本数据.水陆大会.进行[副本id].人物[2].名称)
					}
					任务数据[任务id].地图编号 = 6024
					任务数据[任务id].y = 18
					任务数据[任务id].x = 106
				elseif 进程 == 6 then
					说明 = {
						"水陆大会",
						format("#S终于消灭了妖魔，找土地公公打听下其他妖魔的下落")
					}
					任务数据[任务id].地图编号 = 6024
					任务数据[任务id].y = 14
					任务数据[任务id].x = 110
				elseif 进程 == 7 then
					说明 = {
						"水陆大会",
						format("#S找到罪魁祸首，消灭所有妖魔，救出唐王和玄奘法师\n#G把妖魔巢穴的怪物全部清掉\n才能击杀#R魑魅魍魉")
					}
					任务数据[任务id].地图编号 = 6026
					任务数据[任务id].y = 84
					任务数据[任务id].x = 43
				elseif 进程 == 8 then
					说明 = {
						"水陆大会",
						format("#S终于救出了唐王和玄奘法师，好像唐王有话对你说")
					}
					任务数据[任务id].地图编号 = 6026
					任务数据[任务id].y = 23
					任务数据[任务id].x = 44
				end
			end
		elseif 任务数据[任务id].类型 == 160 then
			local 副本id = 任务数据[任务id].副本id

			if 副本数据.通天河.进行[副本id] == nil then
				说明 = {
					"通天河",
					"#S您的副本已经完成"
				}
			else
				local 进程 = 副本数据.通天河.进行[副本id].进程

				if 进程 == 1 then
					说明 = {
						"通天河",
						format("#S向小朋友们打听#R一秤金、陈关保#S的下落，找到后完成变身\n#G(完成度：%s：5)", 副本数据.通天河.进行[副本id].通天答题)
					}
				elseif 进程 == 2 then
					说明 = {
						"通天河",
						format("#S找到#R一秤金、陈关保#S进行变身。(当前还有%s个玩家没变身)", 5 - 副本数据.通天河.进行[副本id].变身次数)
					}
				elseif 进程 == 3 then
					说明 = {
						"通天河",
						format("#S找到灵灯(23,176)，触摸等待灵感大王的到来。")
					}
				elseif 进程 == 4 then
					说明 = {
						"通天河",
						format("#S灵感大王恼羞成怒，派出河妖进行灭村，少侠快去找到唐僧")
					}
				elseif 进程 == 5 then
					说明 = {
						"通天河",
						format("#S保护陈家庄，消灭河妖\n#G(完成度：%s：%s)", 副本数据.通天河.进行[副本id].河妖, 副本减负.通天河[1])
					}
				elseif 进程 == 6 then
					说明 = {
						"通天河",
						format("#S唐僧被灵感大王掳走，去普陀山向观音姐姐求助，#R散财童子#S和#R黑熊精#S横加阻拦，打败他们！")
					}
				elseif 进程 == 7 then
					说明 = {
						"通天河",
						format("#S找到观音姐姐求助")
					}
				elseif 进程 == 8 then
					说明 = {
						"通天河",
						format("#S灵感大王原是潮音洞的鲤鱼所变。众人帮忙采集五色竹条，编织成降魔鱼篮对付妖怪\n#G(完成度：%s：%s)", 副本数据.通天河.进行[副本id].五色竹条, 副本减负.通天河[2])
					}
				elseif 进程 == 9 then
					说明 = {
						"通天河",
						format("#S降魔鱼篮已经完成，灵感大王出现在通天河底，去妖怪洞府查看下情况。")
					}
				elseif 进程 == 10 then
					说明 = {
						"通天河",
						format("#S进入了灵感大王的腹中，带着降魔鱼篮找到灵感大王的弱点，消灭它。")
					}
				end
			end
		elseif 任务数据[任务id].类型 == 191 then
			local 副本id = 任务数据[任务id].副本id

			if 副本数据.齐天大圣.进行[副本id] == nil then
				说明 = {
					"齐天大圣",
					"#您的副本已经完成"
				}
			else
				local 进程 = 副本数据.齐天大圣.进行[副本id].进程

				if 进程 == 1 then
					说明 = {
						"齐天大圣",
						format("#前往花果山山前安抚#Y伤心的小猴#G当前剩余: %s#、#Y临死的老猴#G当前剩余: %s", 副本数据.齐天大圣.进行[副本id].小猴老猴.伤心的小猴, 副本数据.齐天大圣.进行[副本id].小猴老猴.临死的老猴)
					}
					任务数据[任务id].地图编号 = 6036
					任务数据[任务id].y = 105
					任务数据[任务id].x = 13
				elseif 进程 == 2 then
					任务数据[任务id].地图编号 = 6036
					任务数据[任务id].y = 103
					任务数据[任务id].x = 110
					NPC = 取NPC寻路信息(任务数据[任务id].地图编号, "黑白无常", 任务数据[任务id].x, 任务数据[任务id].y)
					说明 = {
						"齐天大圣",
						format("%s#前来拘魂濒死的老猴,前往#Y(110,103)#附近会会这位不速之客。", NPC)
					}
				elseif 进程 == 3 then
					任务数据[任务id].地图编号 = 6037
					任务数据[任务id].人物 = "判官"
					NPC = 取NPC自动寻路数据(任务数据[任务id].人物, 任务数据[任务id].地图编号)
					说明 = {
						"齐天大圣",
						format("#得悉生死簿之秘,前往地府寻找%s说道说道。", NPC)
					}
				elseif 进程 == 4 then
					任务数据[任务id].地图编号 = 6037
					任务数据[任务id].人物 = "阎王"
					NPC = 取NPC自动寻路数据(任务数据[任务id].人物, 任务数据[任务id].地图编号)
					说明 = {
						"齐天大圣",
						format("#获知生死簿保存在阎王手中，向%s索取生死簿！", NPC)
					}
				elseif 进程 == 5 then
					任务数据[任务id].地图编号 = 6036
					任务数据[任务id].y = 103
					任务数据[任务id].x = 110
					NPC = 取NPC寻路信息(任务数据[任务id].地图编号, "太白金星", 任务数据[任务id].x, 任务数据[任务id].y)
					说明 = {
						"齐天大圣",
						format("#拿来生死簿,我改改改！天庭获悉后,派遣%s(110,103)前来招安！", NPC)
					}
				elseif 进程 == 6 then
					任务数据[任务id].地图编号 = 6038
					任务数据[任务id].人物 = "玉皇大帝"
					NPC = 取NPC自动寻路数据(任务数据[任务id].人物, 任务数据[任务id].地图编号)
					说明 = {
						"齐天大圣",
						format("#来到天宫面见%s,挑战四大天王,向玉帝展示实力！", NPC)
					}
				elseif 进程 == 7 then
					任务数据[任务id].地图编号 = 6038
					任务数据[任务id].人物 = "玉皇大帝"
					NPC = 取NPC自动寻路数据(任务数据[任务id].人物, 任务数据[任务id].地图编号)
					说明 = {
						"齐天大圣",
						format("#实力展示完毕,找%s授封吧！", NPC)
					}
				elseif 进程 == 8 then
					任务数据[任务id].地图编号 = 6038
					任务数据[任务id].y = 128
					任务数据[任务id].x = 192
					说明 = {
						"齐天大圣",
						format("#发现盗马贼,前往驱逐盗马贼吧！#Y剩余盗马贼:#R%s", 副本数据.齐天大圣.进行[副本id].盗马贼)
					}
				elseif 进程 == 9 then
					任务数据[任务id].地图编号 = 6038
					任务数据[任务id].y = 128
					任务数据[任务id].x = 192
					说明 = {
						"齐天大圣",
						format("#一匹调皮的小马跑了出去,抓紧快去巡回吧。")
					}
				elseif 进程 == 10 then
					任务数据[任务id].地图编号 = 6038
					任务数据[任务id].人物 = "天蓬元帅"
					NPC = 取NPC自动寻路数据(任务数据[任务id].人物, 任务数据[任务id].地图编号)
					说明 = {
						"齐天大圣",
						format("#近日闲来无事,初来天庭四处逛逛吧!(对话%s)。", NPC)
					}
				elseif 进程 == 11 then
					任务数据[任务id].地图编号 = 6036
					任务数据[任务id].y = 103
					任务数据[任务id].x = 110
					说明 = {
						"齐天大圣",
						format("#玉帝大怒，命托塔天王率#Y巨灵神#下界降服你，#Y百万天兵#闯入花果山,喝退#Y百万天兵#,打退#Y巨灵神#后对话#Y李靖#。")
					}
				elseif 进程 == 12 then
					任务数据[任务id].地图编号 = 6039
					任务数据[任务id].人物 = "镇塔之神"
					NPC = 取NPC自动寻路数据(任务数据[任务id].人物, 任务数据[任务id].地图编号)
					说明 = {
						"齐天大圣",
						format("#托塔天王使出七宝玲珑塔，进入塔中挑战%s。", NPC)
					}
				end
			end
		elseif 任务数据[任务id].类型 == 208 then
			说明 = {
				"镖王大赛",
				format("请将这批%s镖银押送至#R%s(%s,%s)#S的镖师处，为了确保镖银的安全，押送过程中将无法使用飞行道具。", 任务数据[任务id].难度, 任务数据[任务id].地图名称, 任务数据[任务id].x, 任务数据[任务id].y),
				"可获得经验、银子，可几率获得物品。押送高级镖银和珍贵镖银将几率获得物品鬼谷子。"
			}
		elseif 任务数据[任务id].类型 == 300 then
			NPC = 取NPC自动寻路数据(任务数据[任务id].人物, 任务数据[任务id].地图编号)
			说明 = {
				"押镖任务",
				format("请帮我把镖银送给#Y%s#S的#R%s，#S事出紧急，切勿在路上耽搁。当前#R第%s镖", 取地图名称(任务数据[任务id].地图编号), NPC, 任务数据[任务id].次数, "#S可获得经验、银子，可几率获得物品。押送将几率获得物品鬼谷子。")
			}
		elseif 任务数据[任务id].类型 == 301 then
			if 任务数据[任务id].分类 == 1 then
				NPC = 取NPC自动寻路数据(任务数据[任务id].人物, 任务数据[任务id].地图编号)
				说明 = {
					"青龙任务",
					format("请帮我将这封书信送给#Y%s#S的#R%s#S，事出紧急，切勿在路上耽搁。", 取地图名称(任务数据[任务id].地图编号), NPC)
				}
			elseif 任务数据[任务id].分类 == 2 then
				说明 = {
					"青龙任务",
					format("近日物资紧缺，请你前寻找#R%s#S，事出紧急，切勿在路上耽搁。", 任务数据[任务id].药品)
				}
			elseif 任务数据[任务id].分类 == 3 then
				说明 = {
					"青龙任务",
					format("近日物资紧缺，请你前寻找#R%s#S，事出紧急，切勿在路上耽搁。", 任务数据[任务id].烹饪)
				}
			else
				说明 = {
					"青龙任务",
					format("最近常有敌对门派探子在长安城内出现，还请你在四周巡逻一番。")
				}
			end
		elseif 任务数据[任务id].类型 == 302 then
			if 任务数据[任务id].分类 == 1 then
				NPC = 取NPC自动寻路数据(任务数据[任务id].人物, 任务数据[任务id].地图编号)
				说明 = {
					"玄武任务",
					format("请帮我将这封书信送给#Y%s#S的#R%s#S，事出紧急，切勿在路上耽搁。", 取地图名称(任务数据[任务id].地图编号), NPC)
				}
			elseif 任务数据[任务id].分类 == 2 then
				说明 = {
					"玄武任务",
					format("近日物资紧缺，请你前寻找#R%s#S，事出紧急，切勿在路上耽搁。", 任务数据[任务id].药品)
				}
			elseif 任务数据[任务id].分类 == 3 then
				说明 = {
					"玄武任务",
					format("近日物资紧缺，请你前寻找#R%s#S，事出紧急，切勿在路上耽搁。", 任务数据[任务id].烹饪)
				}
			else
				说明 = {
					"玄武任务",
					format("最近常有敌对门派探子在长安城内出现，还请你在四周巡逻一番。")
				}
			end
		elseif 任务数据[任务id].类型 == 110 then
			if 任务数据[任务id].分类 == 1 then
				NPC = 取NPC寻路信息(地图名称转地图id(任务数据[任务id].地图名称), 任务数据[任务id].名称, 任务数据[任务id].x, 任务数据[任务id].y)
				说明 = {
					"官职任务",
					format("缉拿在#Y%s(%s,%s)#S/处%s", 任务数据[任务id].地图名称, 任务数据[任务id].x, 任务数据[任务id].y, NPC),
					"完成后可获得经验、储备奖励"
				}
			elseif 任务数据[任务id].分类 == 2 then
				NPC = 取NPC寻路信息(地图名称转地图id(任务数据[任务id].地图名称), 任务数据[任务id].名称, 任务数据[任务id].x, 任务数据[任务id].y)
				说明 = {
					"官职任务",
					format("将物资交给#Y/%s(%s,%s)#S/处的%s", 任务数据[任务id].地图名称, 任务数据[任务id].x, 任务数据[任务id].y, NPC),
					"完成后可获得经验、储备奖励"
				}
			elseif 任务数据[任务id].分类 == 3 then
				if 任务数据[任务id].情报 == false then
					local NPC1 = 取NPC寻路信息(地图名称转地图id("大唐国境"), "大唐国境", 322, 202)
					local NPC2 = 取NPC寻路信息(地图名称转地图id("大唐境外"), "大唐境外", 345, 72)
					local NPC3 = 取NPC寻路信息(地图名称转地图id("长寿郊外"), "长寿郊外", 77, 98)
					local NPC4 = 取NPC寻路信息(地图名称转地图id("花果山"), "花果山", 23, 106)
					local NPC5 = 取NPC寻路信息(地图名称转地图id("北俱芦洲"), "北俱芦洲", 154, 100)
					说明 = {
						"官职任务",
						format("在#R/%s、%s、%s、%s、%s#S/处收集情报\n正在进行此任务的玩家不会触发暗雷战斗\n", NPC1, NPC2, NPC3, NPC4, NPC5),
						"完成后可获得经验、储备奖励"
					}
					任务数据[任务id].地图编号 = 1173
					任务数据[任务id].人物 = "云游僧"
				else
					任务数据[任务id].地图编号 = 1001
					任务数据[任务id].人物 = "李将军"
					NPC = 取NPC自动寻路数据(任务数据[任务id].人物, 任务数据[任务id].地图编号)
					说明 = {
						"官职任务",
						format("将得到的情报交给%s\n", NPC),
						"完成后可获得经验、储备奖励"
					}
				end
			elseif 任务数据[任务id].分类 == 4 then
				任务数据[任务id].地图编号 = 1001
				任务数据[任务id].人物 = "李将军"
				NPC = 取NPC自动寻路数据(任务数据[任务id].人物, 任务数据[任务id].地图编号)
				说明 = {
					"官职任务",
					format("找到交给#Y/%s#S/后交给%s", 取装备详细说明(任务数据[任务id].物品), NPC),
					"完成后可获得经验、银子奖励"
				}
			elseif 任务数据[任务id].分类 == 5 then
				NPC = 取NPC自动寻路数据(任务数据[任务id].人物, 任务数据[任务id].地图编号)
				说明 = {
					"官职任务",
					format("找到#Y/%s#的%s，#W帮忙解决难题。", 取地图名称(任务数据[任务id].地图编号), NPC),
					"完成后可获得经验、银子奖励"
				}
			end

			说明[2] = 说明[2] .. format("#G/(当前第%s次)", 玩家数据[玩家id].角色.数据.官职次数)
		elseif 任务数据[任务id].类型 == 111 then
			if 任务数据[任务id].分类 == 1 then
				NPC = 取NPC自动寻路数据(任务数据[任务id].人物, 任务数据[任务id].地图编号)
				说明 = {
					"门派任务",
					format("替师傅送信给#Y%s#W的#S%s", 取地图名称(任务数据[任务id].地图编号), NPC),
					"完成后可获得经验、银子、门派贡献度奖励"
				}
			elseif 任务数据[任务id].分类 == 2 then
				说明 = {
					"门派任务",
					"在本门派场景内巡逻",
					"完成后可获得经验、银子、门派贡献度奖励"
				}
			elseif 任务数据[任务id].分类 == 3 then
				NPC = 取门派师傅自动寻路数据(玩家id)

				if 任务数据[任务id].要求 == nil then
					说明 = {
						"门派任务",
						format("捕捉到#Y%s#S交给师傅%s", 任务数据[任务id].bb, NPC),
						"完成后可获得经验、储备奖励"
					}
				else
					说明 = {
						"门派任务",
						format("捕捉到#R%s#S的#Y%s#S交给师傅%s", 任务数据[任务id].要求, 任务数据[任务id].bb, NPC),
						"完成后可获得经验、储备奖励"
					}
				end
			elseif 任务数据[任务id].分类 == 4 then
				NPC = 取门派师傅自动寻路数据(玩家id)

				if 任务数据[任务id].品质 == nil then
					说明 = {
						"门派任务",
						format("寻找到#Y%s#S交给师傅%s", 取装备详细说明(任务数据[任务id].物品), NPC),
						"完成后可获得经验、储备奖励"
					}
				else
					说明 = {
						"门派任务",
						format("寻找到#Y%s#S交给师傅%s(如果上交的物品品质达#R%s#S可获得双倍奖励)", 取装备详细说明(任务数据[任务id].物品), NPC, 任务数据[任务id].品质),
						"完成后可获得经验、储备奖励"
					}
				end
			elseif 任务数据[任务id].分类 == 5 then
				if 任务数据[任务id].显示坐标 == nil then
					NPC = 取NPC寻路信息(地图名称转地图id(任务数据[任务id].地图名称), 任务数据[任务id].名称, 任务数据[任务id].x, 任务数据[任务id].y)
					说明 = {
						"门派任务",
						format("前往#Y%s#S教训#R%s(%s,%s)", 任务数据[任务id].地图名称, NPC, 任务数据[任务id].x, 任务数据[任务id].y),
						"完成后可获得经验、银子、门派贡献度奖励"
					}
				else
					NPC = 取NPC寻路信息(地图名称转地图id(任务数据[任务id].地图名称), 任务数据[任务id].名称, 任务数据[任务id].x, 任务数据[任务id].y)
					说明 = {
						"门派任务",
						format("前往#Y%s(%s,%s)#S教训#R%s", 任务数据[任务id].地图名称, 任务数据[任务id].x, 任务数据[任务id].y, NPC),
						"完成后可获得经验、银子、门派贡献度奖励"
					}
				end
			elseif 任务数据[任务id].分类 == 6 then
				local NPC = 取NPC寻路信息(地图名称转地图id(任务数据[任务id].地图名称), "苦战中的同门", 任务数据[任务id].x, 任务数据[任务id].y)
				说明 = {
					"门派任务",
					format("请前往#Y/%s(%s,%s)#S/处支援%s", 任务数据[任务id].地图名称, 任务数据[任务id].x, 任务数据[任务id].y, NPC),
					"完成后可获得经验、银子、门派贡献度奖励"
				}
			elseif 任务数据[任务id].分类 == 7 then
				if 任务数据[任务id].乾坤袋 == nil then
					local NPC = 取NPC寻路信息(任务数据[任务id].地图编号, 任务数据[任务id].名称, 任务数据[任务id].x, 任务数据[任务id].y)
					说明 = {
						"门派任务",
						format("请前往#Y/%s(%s,%s)#W/处降服#R/%s#S/(此战斗必须使用乾坤袋)", 取地图名称(任务数据[任务id].地图编号), 任务数据[任务id].x, 任务数据[任务id].y, NPC),
						"完成后可获得经验、银子、门派贡献度奖励"
					}
				else
					NPC = 取门派师傅自动寻路数据(玩家id)
					说明 = {
						"门派任务",
						format("将乾坤袋交给师傅%s", NPC),
						"完成后可获得经验、银子、门派贡献度奖励"
					}
				end
			end

			说明[2] = 说明[2] .. format("#G/(当前第%s次)", 玩家数据[玩家id].角色.数据.师门次数)
		elseif 任务数据[任务id].类型 == 307 then
			local NPC = nil

			if 任务数据[任务id].分类 == 1 then
				任务数据[任务id].地图编号 = 1070
				任务数据[任务id].人物 = "太白金星"
				NPC = 取NPC自动寻路数据(任务数据[任务id].人物, 任务数据[任务id].地图编号)
				说明 = {
					"坐骑剧情任务",
					format("快去找#Y长寿村#S的#R%s#S咨询下吧！", NPC)
				}
			elseif 任务数据[任务id].分类 == 2 then
				任务数据[任务id].地图编号 = 1070
				任务数据[任务id].人物 = "太白金星"
				NPC = 取NPC自动寻路数据(任务数据[任务id].人物, 任务数据[任务id].地图编号)
				说明 = {
					"坐骑剧情任务",
					format("帮#Y/%s#S找到#R/%s", NPC, 任务数据[任务id].烹饪)
				}
			elseif 任务数据[任务id].分类 == 3 then
				任务数据[任务id].地图编号 = 1111
				任务数据[任务id].人物 = "千里眼"
				NPC = 取NPC自动寻路数据(任务数据[任务id].人物, 任务数据[任务id].地图编号)
				说明 = {
					"坐骑剧情任务",
					format("#Y天宫#S的#R%s#S能眼观天下，他也许知道天马的消息！", NPC)
				}
			elseif 任务数据[任务id].分类 == 4 then
				任务数据[任务id].地图编号 = 1111
				任务数据[任务id].人物 = "大力神灵"
				NPC = 取NPC自动寻路数据(任务数据[任务id].人物, 任务数据[任务id].地图编号)
				说明 = {
					"坐骑剧情任务",
					format("帮#R千里眼#S把书信送到#R%s#S处(#R需战斗#S)", NPC)
				}
			elseif 任务数据[任务id].分类 == 5 then
				任务数据[任务id].地图编号 = 1111
				任务数据[任务id].人物 = "千里眼"
				NPC = 取NPC自动寻路数据(任务数据[任务id].人物, 任务数据[任务id].地图编号)
				说明 = {
					"坐骑剧情任务",
					format("看看#R%s#S是不是查探到什么了", NPC)
				}
			elseif 任务数据[任务id].分类 == 6 then
				任务数据[任务id].地图编号 = 1208
				任务数据[任务id].人物 = "土地公公"
				NPC = 取NPC自动寻路数据(任务数据[任务id].人物, 任务数据[任务id].地图编号)
				说明 = {
					"坐骑剧情任务",
					format("找朱紫国#R%s#S看看有没有发现", NPC)
				}
			elseif 任务数据[任务id].分类 == 7 then
				任务数据[任务id].地图编号 = 1208
				任务数据[任务id].人物 = "妖魔亲信"
				NPC = 取NPC自动寻路数据(任务数据[任务id].人物, 任务数据[任务id].地图编号)
				说明 = {
					"坐骑剧情任务",
					format("找到朱紫国皇宫附近的#R%s#S(#R需战斗#S)", NPC)
				}
			elseif 任务数据[任务id].分类 == 8 then
				任务数据[任务id].地图编号 = 1215
				任务数据[任务id].人物 = "蜃妖元神"
				NPC = 取NPC自动寻路数据(任务数据[任务id].人物, 任务数据[任务id].地图编号)
				说明 = {
					"坐骑剧情任务",
					format("找到#R%s#S(#R需战斗#S)", NPC)
				}
			elseif 任务数据[任务id].分类 == 9 then
				任务数据[任务id].地图编号 = 1070
				任务数据[任务id].人物 = "太白金星"
				NPC = 取NPC自动寻路数据(任务数据[任务id].人物, 任务数据[任务id].地图编号)
				说明 = {
					"坐骑剧情任务",
					format("去找找#R%s#S看看什么情况。", NPC)
				}
			elseif 任务数据[任务id].分类 == 10 then
				任务数据[任务id].地图编号 = 1134
				任务数据[任务id].人物 = "大大王"
				NPC = 取NPC自动寻路数据(任务数据[任务id].人物, 任务数据[任务id].地图编号)
				说明 = {
					"坐骑剧情任务",
					format("天下间的动物何去何从都逃不过#Y狮驼岭#S的#R%s#S的眼睛，去调查一番。", NPC)
				}
			elseif 任务数据[任务id].分类 == 11 then
				任务数据[任务id].地图编号 = 1134
				任务数据[任务id].人物 = "大大王"
				NPC = 取NPC自动寻路数据(任务数据[任务id].人物, 任务数据[任务id].地图编号)
				说明 = {
					"坐骑剧情任务",
					format("帮#Y/%s#S找到#R/%s", NPC, 任务数据[任务id].药品)
				}
			elseif 任务数据[任务id].分类 == 12 then
				任务数据[任务id].地图编号 = 1526
				任务数据[任务id].人物 = "周猎户"
				NPC = 取NPC自动寻路数据(任务数据[任务id].人物, 任务数据[任务id].地图编号)
				说明 = {
					"坐骑剧情任务",
					format("马儿在#Y建邺城#S一带遗失，#R%s#S十分可疑，前去调查。", NPC)
				}
			elseif 任务数据[任务id].分类 == 13 then
				任务数据[任务id].地图编号 = 1216
				任务数据[任务id].人物 = "百兽王"
				NPC = 取NPC自动寻路数据(任务数据[任务id].人物, 任务数据[任务id].地图编号)
				说明 = {
					"坐骑剧情任务",
					format("终于找到了马儿，可以去找#R%s#S复命了。", NPC)
				}
			end
		elseif 任务数据[任务id].类型 == 308 then
			if 任务数据[任务id].分类 == 1 then
				说明 = {
					"法宝任务",
					format("#Y%s#W的#R%s#W正需要帮忙，少侠可以去看看，或许有意外的收获。", 取地图名称(任务数据[任务id].地图编号), 任务数据[任务id].人物)
				}
			elseif 任务数据[任务id].分类 == 2 then
				说明 = {
					"法宝任务",
					format("#G%s#S近日物资紧缺，请你前寻找#R%s#S，事出紧急，切勿在路上耽搁。", 任务数据[任务id].法宝NPC, 取装备详细说明(任务数据[任务id].物品))
				}
			elseif 任务数据[任务id].分类 == 3 then
				说明 = {
					"法宝任务",
					format("#G%s#S近日物资紧缺，请你前寻找#R%s#S，事出紧急，切勿在路上耽搁。", 任务数据[任务id].法宝NPC, 取装备详细说明(任务数据[任务id].物品))
				}
			else
				说明 = {
					"法宝任务",
					format("#Y%s#W的#R%s#W仗着自己会点武功，到处惹是生非，希望少侠能为名除害(#R需战斗#W)。", 取地图名称(任务数据[任务id].地图编号), 任务数据[任务id].人物)
				}
			end
		elseif 任务数据[任务id].类型 == 309 then
			说明 = {
				"法宝任务",
				format("内丹是修炼者经过百年甚至千年的修炼在体内以灵气结成的丹丸，#Y%s#W正在#R%s#Y%s#W,#Y%s四处为祸人间，少侠可前往收服该妖魔获取内丹。", 任务数据[任务id].名称, 任务数据[任务id].地图名称, 任务数据[任务id].x, 任务数据[任务id].y)
			}
		elseif 任务数据[任务id].类型 == "飞升剧情" then
			if 任务数据[任务id].进程 == 1 then
				任务数据[任务id].地图编号 = 1528
				任务数据[任务id].人物 = "法明长老"
				local NPC = 取NPC自动寻路数据(任务数据[任务id].人物, 任务数据[任务id].地图编号)
				说明 = {
					"飞升剧情",
					format("如果你准备好了，可以去找%s来指导你如何进入化境！等你通过了所有修炼再来找，我会带你入与化境。", NPC)
				}
			elseif 任务数据[任务id].进程 == 2 then
				任务数据[任务id].地图编号 = 1113
				任务数据[任务id].人物 = "太上老君"
				local NPC = 取NPC自动寻路数据(任务数据[任务id].人物, 任务数据[任务id].地图编号)
				说明 = {
					"飞升剧情",
					format("很好，你现在去天界找%s，他会告诉你一些如何入于化境的方法。", NPC)
				}
			elseif 任务数据[任务id].进程 == 3 then
				任务数据[任务id].地图编号 = 1113
				任务数据[任务id].人物 = "太上老君"
				local NPC = 取NPC自动寻路数据(任务数据[任务id].人物, 任务数据[任务id].地图编号)
				说明 = {
					"飞升剧情",
					format("为#G%s#W寻找#R%s#W和#R%s#W作为药引。", NPC, 任务数据[任务id].药品.药品.名称, 任务数据[任务id].药品.药品1.名称)
				}
			elseif 任务数据[任务id].进程 == 4 then
				任务数据[任务id].地图编号 = 1112
				任务数据[任务id].人物 = "玉皇大帝"
				local NPC = 取NPC自动寻路数据(任务数据[任务id].人物, 任务数据[任务id].地图编号)
				说明 = {
					"飞升剧情",
					format("老君帮忙推荐仙界试练，去找%s看看", NPC)
				}
			elseif 任务数据[任务id].进程 == 5 then
				local aa1 = "未获得"
				local aa2 = "未获得"
				local aa3 = "未获得"
				local aa4 = "未获得"

				if 任务数据[任务id].四法宝.定海针 == true then
					aa1 = "已获得"
				end

				if 任务数据[任务id].四法宝.避火诀 == true then
					aa2 = "已获得"
				end

				if 任务数据[任务id].四法宝.修篁斧 == true then
					aa3 = "已获得"
				end

				if 任务数据[任务id].四法宝.炼金鼎 == true then
					aa4 = "已获得"
				end

				local NPC1 = 取NPC自动寻路数据("东海龙王", nil, "水晶宫")
				local NPC2 = 取NPC自动寻路数据("李靖", 1112)
				local NPC3 = 取NPC自动寻路数据("观音姐姐", nil, "潮音洞")
				local NPC4 = 取NPC自动寻路数据("镇元大仙", 1147)
				说明 = {
					"飞升剧情",
					format("帮玉皇大帝找到#Y/%s#W的#G定海针#W(#R%s#W)；#S%s#W的#G避火诀#W(#R%s#W)；#G%s#W的#G修篁斧#W(#R%s#W)；#Z%s#W的#G炼金鼎#W(#R%s#W)。", NPC1, aa1, NPC2, aa2, NPC3, aa3, NPC4, aa4)
				}
				任务数据[任务id].地图编号 = 1112
				任务数据[任务id].人物 = "玉皇大帝"
			elseif 任务数据[任务id].进程 == 6 then
				任务数据[任务id].地图编号 = 1044
				任务数据[任务id].人物 = "李世民"
				local NPC = 取NPC自动寻路数据(任务数据[任务id].人物, 任务数据[任务id].地图编号)
				说明 = {
					"飞升剧情",
					format("去大唐的长安城皇宫找%s聊聊。", NPC)
				}
			elseif 任务数据[任务id].进程 == 7 then
				if 任务数据[任务id].门派推荐.大唐官府 and 任务数据[任务id].门派推荐.女儿村 and 任务数据[任务id].门派推荐.化生寺 then
					任务数据[任务id].地图编号 = 1044
					任务数据[任务id].人物 = "李世民"
					local NPC = 取NPC自动寻路数据(任务数据[任务id].人物, 任务数据[任务id].地图编号)
					说明 = {
						"飞升剧情",
						format("已经获得三派推荐，该回去见见%s了。", NPC)
					}
				else
					local aa1 = "未获得"
					local aa2 = "未获得"
					local aa3 = "未获得"

					if 任务数据[任务id].门派推荐.大唐官府 == true then
						aa1 = "已获得"
					end

					if 任务数据[任务id].门派推荐.化生寺 == true then
						aa2 = "已获得"
					end

					if 任务数据[任务id].门派推荐.女儿村 == true then
						aa3 = "已获得"
					end

					local NPC1 = 取NPC自动寻路数据("程咬金", 1054)
					local NPC2 = 取NPC自动寻路数据("空度禅师", 1043)
					local NPC3 = 取NPC自动寻路数据("孙婆婆", 1143)
					说明 = {
						"飞升剧情",
						format("获得【大唐官府】%s#W(#R%s#W)、【化生寺】%s#W(#R%s#W)、【女儿村】%s#W(#R%s#W)的推荐", NPC1, aa1, NPC2, aa2, NPC3, aa3)
					}
				end
			elseif 任务数据[任务id].进程 == 8 then
				任务数据[任务id].地图编号 = 1137
				任务数据[任务id].人物 = "菩提祖师"
				local NPC = 取NPC自动寻路数据(任务数据[任务id].人物, 任务数据[任务id].地图编号)
				说明 = {
					"飞升剧情",
					format("为了得到修心封魔之法，前往灵台方寸山、斜月三星洞中找到%s。", NPC)
				}
			elseif 任务数据[任务id].进程 == 9 then
				任务数据[任务id].地图编号 = 1124
				任务数据[任务id].人物 = "地藏王"
				local NPC = 取NPC自动寻路数据(任务数据[任务id].人物, 任务数据[任务id].地图编号)
				说明 = {
					"飞升剧情",
					format("找到地府大总管%s", NPC)
				}
			elseif 任务数据[任务id].进程 == 10 then
				if 任务数据[任务id].征求意见.大大王 and 任务数据[任务id].征求意见.牛魔王 and 任务数据[任务id].征求意见.春十三娘 then
					任务数据[任务id].地图编号 = 1124
					任务数据[任务id].人物 = "地藏王"
					local NPC = 取NPC自动寻路数据(任务数据[任务id].人物, 任务数据[任务id].地图编号)
					说明 = {
						"飞升剧情",
						format("已经获得大大王、牛魔王、春十三娘的同意，该回去见见%s了。", NPC)
					}
				else
					local aa1 = "未完成"
					local aa2 = "未完成"
					local aa3 = "未完成"

					if 任务数据[任务id].征求意见.大大王 == true then
						aa1 = "已完成"
					end

					if 任务数据[任务id].征求意见.春十三娘 == true then
						aa2 = "已完成"
					end

					if 任务数据[任务id].征求意见.牛魔王 == true then
						aa3 = "已完成"
					end

					local NPC1 = 取NPC自动寻路数据("大大王", 1134)
					local NPC2 = 取NPC自动寻路数据("春十三娘", 1144)
					local NPC3 = 取NPC自动寻路数据("牛魔王", 1145)
					说明 = {
						"飞升剧情",
						format("为了得到不死壤，前去征求%s(#R%s#W)、%s(#R%s#W)、%s(#R%s#W)的同意。", NPC1, aa1, NPC2, aa2, NPC3, aa3)
					}
				end
			elseif 任务数据[任务id].进程 == 11 then
				任务数据[任务id].地图编号 = 1202
				任务数据[任务id].人物 = "小宝箱"
				local NPC = 取NPC自动寻路数据(任务数据[任务id].人物, 任务数据[任务id].地图编号)
				说明 = {
					"飞升剧情",
					format("去无名鬼城找到%s获得不死壤。", NPC)
				}
			elseif 任务数据[任务id].进程 == 12 then
				任务数据[任务id].地图编号 = 1112
				任务数据[任务id].人物 = "玉皇大帝"
				local NPC = 取NPC自动寻路数据(任务数据[任务id].人物, 任务数据[任务id].地图编号)
				说明 = {
					"飞升剧情",
					format("拿到了不死壤了，快去找%s获得入于化境的资格吧！", NPC)
				}
			elseif 任务数据[任务id].进程 == 13 then
				任务数据[任务id].地图编号 = 1114
				任务数据[任务id].人物 = "吴刚"
				local NPC = 取NPC自动寻路数据(任务数据[任务id].人物, 任务数据[任务id].地图编号)
				说明 = {
					"飞升剧情",
					format("请回去找%s入于化境。", NPC)
				}
			end
		elseif 任务数据[任务id].类型 == 310 then
			if 任务数据[任务id].进度 == 1 then
				local NPC = 取NPC寻路信息(任务数据[任务id].地图编号, 任务数据[任务id].名称, 任务数据[任务id].x, 任务数据[任务id].y)
				说明 = {
					"飞升大唐官府推荐",
					format("去东海湾#R(%s,%s)#W处收拾%s。", 任务数据[任务id].x, 任务数据[任务id].y, NPC)
				}
			elseif 任务数据[任务id].进度 == 2 then
				local NPC = 取NPC自动寻路数据("程咬金", 1054)
				说明 = {
					"飞升大唐官府推荐",
					format("回到大唐官府找%s交差。", NPC)
				}
			end
		elseif 任务数据[任务id].类型 == 311 then
			if 任务数据[任务id].进度 == 4 then
				local NPC = 取NPC自动寻路数据("空度禅师", 1043)
				说明 = {
					"飞升化生寺推荐",
					format("回到化生寺找%s交差。", NPC)
				}
			else
				local aa1 = "未完成"
				local aa2 = "未完成"
				local aa3 = "未完成"

				if 任务数据[任务id].人物[1].找到 == true then
					aa1 = "已完成"
				end

				if 任务数据[任务id].人物[2].找到 == true then
					aa2 = "已完成"
				end

				if 任务数据[任务id].人物[3].找到 == true then
					aa3 = "已完成"
				end

				local NPC1 = 取NPC自动寻路数据(任务数据[任务id].人物[1].名称, 任务数据[任务id].地图编号)
				local NPC2 = 取NPC自动寻路数据(任务数据[任务id].人物[2].名称, 任务数据[任务id].地图编号)
				local NPC3 = 取NPC自动寻路数据(任务数据[任务id].人物[3].名称, 任务数据[任务id].地图编号)
				说明 = {
					"飞升化生寺推荐",
					format("去长寿村帮%s(#R%s#W)、%s(#R%s#W)、%s(#R%s#W)驱散瘟疫。", NPC1, aa1, NPC2, aa2, NPC3, aa3)
				}
			end
		elseif 任务数据[任务id].类型 == 312 then
			if 任务数据[任务id].进度 == 5 then
				local NPC = 取NPC自动寻路数据("孙婆婆", 1143)
				说明 = {
					"飞升女儿村推荐",
					format("回到女儿村找%s交差。", NPC)
				}
			else
				local aa1 = "未完成"
				local aa2 = "未完成"
				local aa3 = "未完成"
				local aa4 = "未完成"

				if 任务数据[任务id].进度 >= 2 then
					aa1 = "已完成"
				end

				if 任务数据[任务id].进度 >= 3 then
					aa2 = "已完成"
				end

				if 任务数据[任务id].进度 >= 4 then
					aa3 = "已完成"
				end

				local NPC1 = 取NPC自动寻路数据("凤凰姑娘", 1070)
				local NPC2 = 取NPC自动寻路数据("刘副将", 1001)
				local NPC3 = 取NPC自动寻路数据("小花", 1501)
				local NPC4 = 取NPC自动寻路数据("红毛猿", 1092)
				说明 = {
					"飞升女儿村推荐",
					format("依次给长寿村%s(#R%s#W)、长安城%s(#R%s#W)、建邺城%s(#R%s#W)、傲来国%s(#R%s#W)送去口信。", NPC1, aa1, NPC2, aa2, NPC3, aa3, NPC4, aa4)
				}
			end
		elseif 任务数据[任务id].类型 == 313 then
			if 任务数据[任务id].进度 == 1 then
				local NPC = 取NPC寻路信息(任务数据[任务id].地图编号, 任务数据[任务id].名称, 任务数据[任务id].x, 任务数据[任务id].y)
				说明 = {
					"飞升方寸山推荐",
					format("去东海湾(#Y%s#W，#Y%s#W)除掉%s。", 任务数据[任务id].x, 任务数据[任务id].y, NPC)
				}
			elseif 任务数据[任务id].进度 == 2 then
				local NPC = 取NPC自动寻路数据("菩提祖师", 1137)
				说明 = {
					"飞升方寸山推荐",
					format("回到方寸山找%s交差。", NPC)
				}
			end
		elseif 任务数据[任务id].类型 == 346 then
			说明 = {
				"侠义任务",
				format("最近缺少#G/%s#R/%s#W，麻烦少侠帮我找来。", 任务数据[任务id].物品类型, 取装备详细说明(任务数据[任务id].物品))
			}
		elseif 任务数据[任务id].类型 == 350 then
			说明 = {
				"贼王的线索",
				format("前往#Y/%s(%s,%s)#W/#S/处缉拿#R/%s#S/。此任务难度较高，请尽量与一些实力超群的玩家组队完成。#R(剩余%s分钟)", 取地图名称(任务数据[任务id].地图编号), 任务数据[任务id].x, 任务数据[任务id].y, 任务数据[任务id].名称, 取分(任务数据[任务id].结束 - (os.time() - 任务数据[任务id].起始))),
				"完成后可获得大量储备与高级宝石"
			}
		elseif 任务数据[任务id].类型 == 352 then
			说明 = {
				"水陆大会",
				format("去道场的后院#R%s,%s#W附近的#R蟠桃树#W上查找一下泼猴的踪迹。", 任务数据[任务id].x, 任务数据[任务id].y)
			}
		elseif 任务数据[任务id].类型 == 353 then
			说明 = {
				"水陆大会",
				format("穿过道场前门，到繁华京城给#R%s(%s，%s)#W送上邀帖。", 任务数据[任务id].人物, 任务数据[任务id].x, 任务数据[任务id].y)
			}
		elseif 任务数据[任务id].类型 == 8800 then
			local 玩家id = 任务数据[任务id].玩家id
			local 进程 = 玩家数据[玩家id].角色.数据.剧情.渡劫

			if 玩家数据[玩家id].角色.数据.任务进行 ~= nil and 玩家数据[玩家id].角色.数据.任务进行["渡劫" .. 玩家数据[玩家id].角色.数据.剧情.渡劫] ~= true then
				self:取渡劫任务(玩家id)
			end

			if 进程 == 0 then
				说明 = {
					"渡劫剧情",
					format("听说领头人在滨海之境出没，等待各路高手的汇聚。")
				}
			elseif 进程 == 1 then
				任务数据[任务id].地图编号 = 1179
				任务数据[任务id].x = 55
				任务数据[任务id].y = 50
				说明 = {
					"渡劫剧情",
					format("去龙窟内爽灵阵附近看看情况。")
				}
			elseif 进程 == 2 then
				任务数据[任务id].地图编号 = 1187
				任务数据[任务id].x = 58
				任务数据[任务id].y = 28
				local NPC = 取NPC寻路信息(任务数据[任务id].地图编号, "蚩尤之子", 任务数据[任务id].x, 任务数据[任务id].y)
				说明 = {
					"渡劫剧情",
					format("对话%s", NPC)
				}
			elseif 进程 == 3 then
				任务数据[任务id].地图编号 = 1178
				任务数据[任务id].x = 82
				任务数据[任务id].y = 37
				local NPC = 取NPC寻路信息(任务数据[任务id].地图编号, "蚩尤之子", 任务数据[任务id].x, 任务数据[任务id].y)
				说明 = {
					"渡劫剧情",
					format("追上走向龙窟二层(82,37)的%s。", NPC)
				}
			elseif 进程 == 4 then
				任务数据[任务id].地图编号 = 1187
				任务数据[任务id].x = 108
				任务数据[任务id].y = 61
				local NPC = 取NPC寻路信息(任务数据[任务id].地图编号, "蚩尤之子", 任务数据[任务id].x, 任务数据[任务id].y)
				说明 = {
					"渡劫剧情",
					format("到凤巢二层(112,55)找%s。", NPC)
				}
			elseif 进程 == 5 then
				任务数据[任务id].地图编号 = 1178
				任务数据[任务id].人物 = "龙神"
				任务数据[任务id].x = 114
				任务数据[任务id].y = 43
				local NPC = 取NPC自动寻路数据(任务数据[任务id].人物, 任务数据[任务id].地图编号)
				说明 = {
					"渡劫剧情",
					format("到龙窟二层找%s。", NPC)
				}
			elseif 进程 == 6 then
				任务数据[任务id].地图编号 = 1210
				任务数据[任务id].x = 177
				任务数据[任务id].y = 11
				local NPC = 取NPC寻路信息(任务数据[任务id].地图编号, "蚩尤之子", 任务数据[任务id].x, 任务数据[任务id].y)
				说明 = {
					"渡劫剧情",
					format("到麒麟山(177,11)处的胎光阵找到%s。", NPC)
				}
			elseif 进程 == 7 then
				任务数据[任务id].地图编号 = 1208
				任务数据[任务id].x = 45
				任务数据[任务id].y = 36
				local NPC = 取NPC寻路信息(任务数据[任务id].地图编号, "蚩尤之子", 任务数据[任务id].x, 任务数据[任务id].y)
				说明 = {
					"渡劫剧情",
					format("逃跑到朱紫国(45,36)处找%s。", NPC)
				}
			elseif 进程 == 8 then
				if 门派师傅坐标[玩家数据[玩家id].角色.数据.门派] ~= nil then
					local aa = 门派师傅坐标[玩家数据[玩家id].角色.数据.门派]
					任务数据[任务id].地图编号 = aa[1]
					任务数据[任务id].人物 = aa[4]
					任务数据[任务id].x = aa[2]
					任务数据[任务id].y = aa[3]
					local NPC = 取NPC自动寻路数据(任务数据[任务id].人物, 任务数据[任务id].地图编号)
					说明 = {
						"渡劫剧情",
						format("回到门派找门派师傅%s帮忙。", NPC)
					}
				else
					说明 = {
						"渡劫剧情",
						format("回到门派找门派师傅帮忙。")
					}
				end
			elseif 进程 == 9 then
				任务数据[任务id].地图编号 = 1210
				任务数据[任务id].x = 171
				任务数据[任务id].y = 15
				local NPC = 取NPC寻路信息(任务数据[任务id].地图编号, "天冷曰妄空", 任务数据[任务id].x, 任务数据[任务id].y)
				说明 = {
					"渡劫剧情",
					format("带着师傅去麒麟山找到%s对峙。", NPC)
				}
			elseif 进程 == 10 then
				任务数据[任务id].地图编号 = 1208
				任务数据[任务id].x = 45
				任务数据[任务id].y = 36
				local NPC = 取NPC寻路信息(任务数据[任务id].地图编号, "蚩尤之子", 任务数据[任务id].x, 任务数据[任务id].y)
				说明 = {
					"渡劫剧情",
					format("连师傅都不信任自己了，回到朱紫国找%s想想办法。", NPC)
				}
			elseif 进程 == 11 then
				任务数据[任务id].地图编号 = 1042
				任务数据[任务id].x = 36
				任务数据[任务id].y = 38

				if 任务数据[任务id].所需武器 == nil then
					if 玩家数据[玩家id].角色.数据.渡劫武器 == nil then
						local 所需武器 = Q_取随机渡劫武器[取随机数(1, #Q_取随机渡劫武器)]
						任务数据[任务id].所需武器 = 所需武器
						玩家数据[玩家id].角色.数据.渡劫武器 = 所需武器
					else
						任务数据[任务id].所需武器 = 玩家数据[玩家id].角色.数据.渡劫武器 .. ""
					end
				end

				local NPC = 取NPC寻路信息(任务数据[任务id].地图编号, "蚩尤之子", 任务数据[任务id].x, 任务数据[任务id].y)
				说明 = {
					"渡劫剧情",
					format("找到一把#R" .. 任务数据[任务id].所需武器 .. "#W在解阳山和%s(36,38)一起布置陷阱。", NPC)
				}
			elseif 进程 == 12 then
				任务数据[任务id].地图编号 = 1042
				任务数据[任务id].x = 29
				任务数据[任务id].y = 38
				local NPC = 取NPC寻路信息(任务数据[任务id].地图编号, 取门派师傅名称(玩家数据[玩家id].角色.数据.门派), 任务数据[任务id].x, 任务数据[任务id].y)
				说明 = {
					"渡劫剧情",
					format("揭穿了#R天冷曰妄空#的阴谋，去找师傅%s聊聊", NPC)
				}
			elseif 进程 == 13 then
				任务数据[任务id].地图编号 = 1206
				任务数据[任务id].x = 123
				任务数据[任务id].y = 76
				local NPC = 取NPC寻路信息(任务数据[任务id].地图编号, "蚩尤幻影", 任务数据[任务id].x, 任务数据[任务id].y)
				说明 = {
					"渡劫剧情",
					format("击败武神坛内的%s(123,76)。(最终之战)(可通过在解阳山29,38的师傅再进入武神坛)", NPC)
				}
			end
		elseif 任务数据[任务id].类型 == 409 then
			说明 = {
				"离线经验加成",
				format("#/离线时所获取的经验，在获取经验的时候进行额外加成，当前还剩余#R/%s#/点离线经验。", 任务数据[任务id].离线经验)
			}
		elseif 任务数据[任务id].类型 == 410 then
			说明 = {
				"离线储备加成",
				format("#/离线时所获取的储备，在获取经验的时候进行额外加成，当前还剩余#R/%s#/点储备。", 任务数据[任务id].离线储备)
			}
		elseif 任务数据[任务id].类型 == 7760 then
			if 任务数据[任务id].分类 == 1 then
				说明 = {
					"雪人任务",
					format("替雪人给#R/%s#的#R%s#送上祝福。", 取地图名称(任务数据[任务id].地图编号), 任务数据[任务id].人物)
				}
			elseif 任务数据[任务id].分类 == 2 then
				说明 = {
					"雪人任务",
					format("寻找到#R%s#交给雪人。", 取装备详细说明(任务数据[任务id].物品))
				}
			end
		end
	end

	if 任务数据[任务id].地图编号 ~= nil then
		任务数据[任务id].地图编号 = 任务数据[任务id].地图编号
	elseif 任务数据[任务id].地图编号 == nil and 任务数据[任务id].地图名称 ~= nil then
		任务数据[任务id].地图编号 = 地图名称转地图id(任务数据[任务id].地图名称)
	end

	if 任务数据[任务id].坐标 == nil and 任务数据[任务id].人物 ~= nil and 任务数据[任务id].地图编号 ~= nil then
		任务数据[任务id].坐标 = 取假人表1(任务数据[任务id].地图编号, nil, 任务数据[任务id].人物)
	end

	if 任务数据[任务id].坐标 == nil and 任务数据[任务id].x ~= nil and 任务数据[任务id].y ~= nil then
		任务数据[任务id].坐标 = {
			X = 任务数据[任务id].x,
			Y = 任务数据[任务id].y
		}
	end

	if 任务数据[任务id].坐标 ~= nil and 任务数据[任务id].地图编号 ~= nil then
		说明.坐标 = 任务数据[任务id].坐标
		说明.坐标.地图编号 = 任务数据[任务id].地图编号
	end

	return 说明
end

删除指定任务类型单位 = function(类型)
	if 类型 == nil then
		return
	end

	删除类型 = {}

	if type(类型) == "table" then
		for i = 1, #类型 do
			删除类型[类型[i]] = 1
		end
	else
		删除类型[类型] = 1
	end

	for n, v in pairs(任务数据) do
		if 任务数据[n] ~= nil and 删除类型[任务数据[n].类型] ~= nil and 任务数据[n].单位编号 ~= nil and 任务数据[n].地图编号 ~= nil then
			地图处理类:删除单位(任务数据[n].地图编号, 任务数据[n].单位编号)

			任务数据[n] = nil
		end
	end
end

function 任务处理类:更新(dt)
	for n, v in pairs(任务数据) do
		if 任务数据[n] ~= nil then
			if 任务数据[n].类型 == 22 then
				if 任务数据[n].阶段 <= 3 then
					if os.time() - 任务数据[n].记录时间 >= 300 then
						任务数据[n].阶段 = 任务数据[n].阶段 + 1
						任务数据[n].操作 = true
						任务数据[n].记录时间 = os.time()

						if 玩家数据[任务数据[n].玩家id] ~= nil then
							常规提示(任务数据[n].玩家id, "#Y你种下的摇钱树需要照料了，请赶紧前往。")
						end
					end
				elseif 任务数据[n].阶段 == 4 then
					任务数据[n].阶段 = 任务数据[n].阶段 + 1
					任务数据[n].次数 = 取随机数(1, 3) + 任务数据[n].成功操作
					任务数据[n].模型 = "摇钱树"

					地图处理类:更改怪物模型(n)

					if 玩家数据[任务数据[n].玩家id] ~= nil then
						常规提示(任务数据[n].玩家id, "#Y你种下的摇钱树已经长大了，现在你可以摘取它的果实了。")
					end
				end
			end

			if 任务数据[n].结束 <= os.time() - 任务数据[n].起始 and 任务数据[n].战斗 ~= true then
				if 任务数据[n].类型 == 1 then
					if 玩家数据[任务数据[n].玩家id] ~= nil then
						玩家数据[任务数据[n].玩家id].角色:取消任务(n)
						发送数据(玩家数据[任务数据[n].玩家id].连接id, 39)
						常规提示(任务数据[n].玩家id, "你的变身时间到期了！")

						玩家数据[任务数据[n].玩家id].角色.数据.变身数据 = nil
						玩家数据[任务数据[n].玩家id].角色.数据.变身卡技能 = nil
						玩家数据[任务数据[n].玩家id].角色.数据.变异 = nil

						发送数据(玩家数据[任务数据[n].玩家id].连接id, 37, {
							变身数据 = 玩家数据[任务数据[n].玩家id].角色.数据.变身数据,
							变异 = 玩家数据[任务数据[n].玩家id].角色.数据.变异
						})
						地图处理类:更改模型(任务数据[n].玩家id, {
							玩家数据[任务数据[n].玩家id].角色.数据.变身数据,
							玩家数据[任务数据[n].玩家id].角色.数据.变异
						}, 1)
					end

					任务数据[n] = nil
				elseif 任务数据[n].类型 == 9000 then
					for i = 1, #任务数据[n].队伍组 do
						local id1 = 任务数据[n].队伍组[i]

						玩家数据[id1].角色:取消任务(n)
					end

					地图处理类:删除单位(任务数据[n].地图编号, 任务数据[n].单位编号)

					任务数据[n] = nil
				elseif 任务数据[n].类型 == 130 then
					删除副本地图单位(n, {
						6021,
						6022,
						6023
					})

					for i = 1, #任务数据[n].队伍组 do
						local id1 = 任务数据[n].队伍组[i]

						玩家数据[id1].角色:取消任务(n)
					end

					任务数据[n] = nil
				elseif 任务数据[n].类型 == 777 then
					if 玩家数据[任务数据[n].玩家id] ~= nil then
						玩家数据[任务数据[n].玩家id].角色:取消任务(n)
						发送数据(玩家数据[任务数据[n].玩家id].连接id, 102.1, {
							编号 = 任务数据[n].编号
						})
						常规提示(任务数据[n].玩家id, "助战的变身时间到期了！")

						if 玩家数据[任务数据[n].玩家id].助战 ~= nil and 玩家数据[任务数据[n].玩家id].助战.数据[任务数据[n].编号] ~= nil then
							玩家数据[任务数据[n].玩家id].助战.数据[任务数据[n].编号].变身 = nil
							玩家数据[任务数据[n].玩家id].助战.数据[任务数据[n].编号].变异 = nil
							玩家数据[任务数据[n].玩家id].助战.数据[任务数据[n].编号].变身数据 = nil
							玩家数据[任务数据[n].玩家id].助战.数据[任务数据[n].编号].变身卡技能 = nil
						end
					end

					任务数据[n] = nil
				elseif 任务数据[n].类型 == 2 then
					if 玩家数据[任务数据[n].玩家id] ~= nil then
						玩家数据[任务数据[n].玩家id].角色:取消任务(n)
						发送数据(玩家数据[任务数据[n].玩家id].连接id, 39)
						常规提示(任务数据[n].玩家id, "你的双倍时间到期了！")
					end

					任务数据[n] = nil
				elseif 任务数据[n].类型 == 3 then
					if 玩家数据[任务数据[n].玩家id] ~= nil then
						玩家数据[任务数据[n].玩家id].角色:取消任务(n)
						发送数据(玩家数据[任务数据[n].玩家id].连接id, 39)
						常规提示(任务数据[n].玩家id, "你的精修时间到期了！")
					end

					任务数据[n] = nil
				elseif 任务数据[n].类型 == 4 then
					if 玩家数据[任务数据[n].玩家id] ~= nil and 任务数据[n].战斗 == nil then
						玩家数据[任务数据[n].玩家id].角色:取消任务(n)
						发送数据(玩家数据[任务数据[n].玩家id].连接id, 39)
						地图处理类:删除单位(任务数据[n].地图编号, 任务数据[n].单位编号)

						任务数据[n] = nil
					elseif 玩家数据[任务数据[n].玩家id] == nil then
						地图处理类:删除单位(任务数据[n].地图编号, 任务数据[n].单位编号)

						任务数据[n] = nil
					end
				elseif 任务数据[n].类型 == 7 then
					if 玩家数据[任务数据[n].玩家id] ~= nil then
						玩家数据[任务数据[n].玩家id].角色:取消任务(n)
						发送数据(玩家数据[任务数据[n].玩家id].连接id, 39)
						常规提示(任务数据[n].玩家id, "你的科举答题时间到期了！")
					end

					任务数据[n] = nil
				elseif 任务数据[n].类型 == 9 then
					if 玩家数据[任务数据[n].玩家id] ~= nil then
						玩家数据[任务数据[n].玩家id].角色:取消任务(n)
						发送数据(玩家数据[任务数据[n].玩家id].连接id, 39)
						常规提示(任务数据[n].玩家id, "你的摄妖香过期了！")
					end

					任务数据[n] = nil
				elseif 任务数据[n].类型 == 22 then
					if 玩家数据[任务数据[n].玩家id] ~= nil then
						玩家数据[任务数据[n].玩家id].角色:取消任务(n)
						发送数据(玩家数据[任务数据[n].玩家id].连接id, 39)
						常规提示(任务数据[n].玩家id, "你的摇钱树枯萎了消失了！")
					end

					if 任务数据[n].刷出强盗 ~= nil then
						地图处理类:删除单位(任务数据[任务数据[n].刷出强盗].地图编号, 任务数据[任务数据[n].刷出强盗].单位编号)

						任务数据[任务数据[n].刷出强盗] = nil

						玩家数据[任务数据[n].玩家id].角色:取消任务(任务数据[n].刷出强盗)
					end

					地图处理类:删除单位(任务数据[n].地图编号, 任务数据[n].单位编号)

					任务数据[n] = nil
				elseif 任务数据[n].类型 == 7756 then
					if 玩家数据[任务数据[n].玩家id] ~= nil then
						玩家数据[任务数据[n].玩家id].角色:取消任务(n)
						发送数据(玩家数据[任务数据[n].玩家id].连接id, 39)
						常规提示(任务数据[n].玩家id, "你的2倍经验丹过期了！")
					end

					任务数据[n] = nil
				elseif 任务数据[n].类型 == 7755 then
					if 玩家数据[任务数据[n].玩家id] ~= nil then
						玩家数据[任务数据[n].玩家id].角色:取消任务(n)
						发送数据(玩家数据[任务数据[n].玩家id].连接id, 39)
						常规提示(任务数据[n].玩家id, "你的3倍经验丹过期了！")
					end

					任务数据[n] = nil
				elseif 任务数据[n].类型 == 7757 then
					if 玩家数据[任务数据[n].玩家id] ~= nil then
						玩家数据[任务数据[n].玩家id].角色:取消任务(n)
						发送数据(玩家数据[任务数据[n].玩家id].连接id, 39)
						常规提示(任务数据[n].玩家id, "你的10倍经验丹过期了！")
					end

					任务数据[n] = nil
				elseif 任务数据[n].类型 == 210 or 任务数据[n].类型 == 209 or 任务数据[n].类型 == 207 or 任务数据[n].类型 == 101 or 任务数据[n].类型 == 205 or 任务数据[n].类型 == 104 or 任务数据[n].类型 == 11 or 任务数据[n].类型 == 12 or 任务数据[n].类型 == 206 or 任务数据[n].类型 == 350 or 任务数据[n].类型 == 351 or 任务数据[n].类型 == 352 or 任务数据[n].类型 == 353 or 任务数据[n].类型 == 354 or 任务数据[n].类型 == 355 or 任务数据[n].类型 == 356 or 任务数据[n].类型 == 357 or 任务数据[n].类型 == 358 then
					if 任务数据[n].战斗 == nil then
						地图处理类:删除单位(任务数据[n].地图编号, 任务数据[n].单位编号)

						任务数据[n] = nil
					end
				elseif 任务数据[n].类型 == 203 or 任务数据[n].类型 == 204 or 任务数据[n].类型 == 303 or 任务数据[n].类型 == 304 or 任务数据[n].类型 == 341 or 任务数据[n].类型 == 342 or 任务数据[n].类型 == 305 or 任务数据[n].类型 == 306 or 任务数据[n].类型 == 326 or 任务数据[n].类型 == 327 or 任务数据[n].类型 == 328 or 任务数据[n].类型 == 329 or 任务数据[n].类型 == 330 or 任务数据[n].类型 == 331 or 任务数据[n].类型 == 332 or 任务数据[n].类型 == 333 or 任务数据[n].类型 == 201 or 任务数据[n].类型 == 202 or 任务数据[n].类型 == 202.1 or 任务数据[n].类型 == 8 or 任务数据[n].类型 == 102 or 任务数据[n].类型 == 103 or 任务数据[n].类型 == 105 or 任务数据[n].类型 == 313 or 任务数据[n].类型 == 314 or 任务数据[n].类型 == 315 or 任务数据[n].类型 == 316 or 任务数据[n].类型 == 317 or 任务数据[n].类型 == 318 or 任务数据[n].类型 == 320 or 任务数据[n].类型 == 321 or 任务数据[n].类型 == 322 or 任务数据[n].类型 == 323 or 任务数据[n].类型 == 324 or 任务数据[n].类型 == 325 or 任务数据[n].类型 == 334 or 任务数据[n].类型 == 335 or 任务数据[n].类型 == 336 or 任务数据[n].类型 == 337 or 任务数据[n].类型 == 338 or 任务数据[n].类型 == 339 or 任务数据[n].类型 == 343 or 任务数据[n].类型 == 344 or 任务数据[n].类型 == 345 or 任务数据[n].类型 == 347 or 任务数据[n].类型 == 348 or 任务数据[n].类型 == 349 or 新增活动类型[任务数据[n].类型] ~= nil then
					if 任务数据[n].战斗 == nil then
						if 任务数据[n].类型 == 339 then
							广播消息({
								频道 = "xt",
								内容 = format("#Y天下之大，竟然没有一个人能阻挡天魔" .. "#" .. 取随机数(1, 110))
							})
						end

						地图处理类:删除单位(任务数据[n].地图编号, 任务数据[n].单位编号)

						任务数据[n] = nil
					end
				elseif 任务数据[n].类型 == 127 or 任务数据[n].类型 == 128 or 任务数据[n].类型 == 129 then
					if 任务数据[n].战斗 == nil then
						地图处理类:删除单位(任务数据[n].地图编号, 任务数据[n].单位编号)

						任务数据[n] = nil
					end
				elseif 游泳开关 == false and 任务数据[n].类型 == 108 then
					地图处理类:删除单位(任务数据[n].地图编号, 任务数据[n].单位编号)

					任务数据[n] = nil
				elseif 游泳开关 == false and 任务数据[n].类型 == 109 then
					任务数据[n] = nil
				elseif 任务数据[n].类型 == 110 then
					if 玩家数据[任务数据[n].玩家id] ~= nil and 玩家数据[任务数据[n].玩家id].战斗 == 0 then
						玩家数据[任务数据[n].玩家id].角色:取消任务(n)
						发送数据(玩家数据[任务数据[n].玩家id].连接id, 39)

						if 任务数据[n].分类 == 1 then
							地图处理类:删除单位(任务数据[n].地图编号, 任务数据[n].单位编号)
						end

						任务数据[n] = nil
					elseif 玩家数据[任务数据[n].玩家id] == nil then
						地图处理类:删除单位(任务数据[n].地图编号, 任务数据[n].单位编号)

						任务数据[n] = nil
					end
				elseif 任务数据[n].类型 == 111 then
					if 玩家数据[任务数据[n].玩家id] ~= nil and 玩家数据[任务数据[n].玩家id].战斗 == 0 then
						玩家数据[任务数据[n].玩家id].角色:取消任务(n)
						发送数据(玩家数据[任务数据[n].玩家id].连接id, 39)
						地图处理类:删除单位(任务数据[n].地图编号, 任务数据[n].单位编号)

						任务数据[n] = nil
					elseif 玩家数据[任务数据[n].玩家id] == nil then
						地图处理类:删除单位(任务数据[n].地图编号, 任务数据[n].单位编号)

						任务数据[n] = nil
					end
				end
			end
		end
	end
end

function 任务处理类:取编号()
	for n, v in pairs(任务数据) do
		if n == nil and n >= 1000 then
			return n
		end
	end

	local 临时id = #任务数据 + 1

	if 任务数据[临时id] == nil then
		return 临时id
	else
		for n = 1000, 100000 do
			if 任务数据[n] == nil then
				return n
			end
		end
	end
end

function 任务处理类:添加离线经验(id, 数值)
	if 玩家数据[id].角色:取任务(409) ~= 0 then
		添加最后对话(id, "你已经领取过该任务抓紧去完成吧！")

		return
	end

	local 任务id = id .. "_409_" .. os.time()
	local 结束时间 = 999999
	任务数据[任务id] = {
		类型 = 409,
		id = 任务id,
		起始 = os.time(),
		结束 = 结束时间,
		玩家id = id,
		离线经验 = 数值,
		队伍组 = {}
	}

	玩家数据[id].角色:添加任务(任务id)
	发送数据(玩家数据[id].连接id, 39)
end

function 任务处理类:添加离线储备(id, 数值)
	if 玩家数据[id].角色:取任务(410) ~= 0 then
		添加最后对话(id, "你已经领取过该任务抓紧去完成吧！")

		return
	end

	local 任务id = id .. "_410_" .. os.time()
	local 结束时间 = 999999
	任务数据[任务id] = {
		类型 = 410,
		id = 任务id,
		起始 = os.time(),
		结束 = 结束时间,
		玩家id = id,
		离线储备 = 数值,
		队伍组 = {}
	}

	玩家数据[id].角色:添加任务(任务id)
	发送数据(玩家数据[id].连接id, 39)
end

function 任务处理类:设置幼儿园(id)
	local 临时数量 = 取随机数(3, 5)
	local 地图范围 = {
		1193,
		1193
	}
	local 地图 = 地图范围[取随机数(1, #地图范围)]
	local 随机参数 = ygsj()
	local 结束时间 = 300

	for n = 1, 临时数量 do
		local 任务id = id .. "_101_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999)
		随机序列 = 随机序列 + 1
		xy = 地图处理类.地图坐标[地图]:取随机点()
		local 模型 = 取随机怪(105, 180)
		模型 = 模型[2]
		任务数据[任务id] = {
			行走开关 = true,
			类型 = 102,
			id = 任务id,
			起始 = os.time(),
			结束 = 结束时间,
			玩家id = id,
			队伍组 = {},
			名称 = 模型 .. "宝宝",
			模型 = 模型,
			等级 = 取随机数(5, 180),
			x = xy.x,
			y = xy.y,
			地图编号 = 地图,
			地图名称 = 取地图名称(地图)
		}

		if ygsj() <= 50 then
			任务数据[任务id].变异 = true
			任务数据[任务id].名称 = "变异" .. 模型
		end

		地图处理类:添加单位(任务id)
	end

	广播消息({
		频道 = "xt",
		内容 = format("#Y/%s#W/在挖宝时砸坏了#S/怪物幼儿园#W/，一群宝宝正在#Y/%s#w/哭闹,各路英雄快来领养#46", 玩家数据[id].角色.数据.名称, 取地图名称(地图))
	})
end

function 任务处理类:添加降妖除魔任务(id)
	if 玩家数据[id].队伍 == 0 or 玩家数据[id].队长 == false then
		常规提示(id, "#Y/该任务必须组队完成且由队长领取")

		return
	elseif 活动次数查询(id, "降妖伏魔") == false then
		return
	elseif 取队伍最低等级(玩家数据[id].队伍, 40) then
		常规提示(id, "#Y/等级小于40级的玩家无法领取此任务")

		return
	elseif 取队伍任务(玩家数据[id].队伍, 200) then
		常规提示(id, "#Y/队伍中已有队员领取过此任务了")

		return
	elseif 取队伍人数(id) < 3 then
		常规提示(id, "#Y/本任务至少需要3人组队完成")

		return
	end

	local 任务id = id .. "_200_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999)

	if 降妖伏魔[id] == nil then
		降妖伏魔[id] = 1
	end

	if 降妖伏魔[id] == 1 then
		名称 = "巧智魔"
		模型 = "蜃气妖"
	elseif 降妖伏魔[id] == 2 then
		名称 = "怯弱妖"
		模型 = "雾中仙"
	elseif 降妖伏魔[id] == 3 then
		名称 = "迷幻妖"
		模型 = "曼珠沙华"
	elseif 降妖伏魔[id] == 4 then
		名称 = "梦魇魔"
		模型 = "炎魔神"
	elseif 降妖伏魔[id] == 5 then
		名称 = "万年魔灵"
		模型 = "九头精怪"
	end

	local 地图范围 = {
		1501,
		1092,
		1070,
		1208,
		1040,
		1226
	}
	local 地图 = 地图范围[取随机数(1, #地图范围)]
	local xy = 地图处理类.地图坐标[地图]:取随机点()
	local x临时人物队伍 = {}

	if 玩家数据[id].队伍 ~= nil and 玩家数据[id].队伍 ~= 0 then
		for i = 1, #队伍数据[玩家数据[id].队伍].成员数据 do
			if 队伍数据[玩家数据[id].队伍].成员数据[i] ~= nil then
				x临时人物队伍[#x临时人物队伍 + 1] = 队伍数据[玩家数据[id].队伍].成员数据[i]
			end
		end
	end

	任务数据[任务id] = {
		结束 = 3600,
		类型 = 200,
		领取人id = x临时人物队伍,
		id = 任务id,
		起始 = os.time(),
		玩家id = {},
		队伍组 = {},
		名称 = 名称,
		模型 = 模型,
		x = xy.x,
		y = xy.y,
		地图编号 = 地图,
		地图名称 = 取地图名称(地图),
		分类 = 降妖伏魔[id]
	}

	地图处理类:添加单位(任务id)

	local 队伍id = 玩家数据[id].队伍

	for n = 1, #队伍数据[队伍id].成员数据 do
		local 临时id = 队伍数据[队伍id].成员数据[n]

		if 降妖伏魔[临时id] == nil then
			降妖伏魔[临时id] = 1
		end

		任务数据[任务id].队伍组[#任务数据[任务id].队伍组 + 1] = 临时id

		玩家数据[临时id].角色:添加任务(任务id)
		发送数据(玩家数据[临时id].连接id, 1501, {
			名称 = "鬼谷道人",
			模型 = "男人_道士",
			对话 = format("据可靠消息，一只#Y/%s#W/正躲藏#G/%s(%s,%s)#W/附近，请立即前去缉拿。", 任务数据[任务id].名称, 任务数据[任务id].地图名称, 任务数据[任务id].x, 任务数据[任务id].y)
		})
	end

	return true
end

function 任务处理类:添加皇宫飞贼任务(id)
	if 玩家数据[id].队伍 == 0 or 玩家数据[id].队长 == false then
		常规提示(id, "#Y/该任务必须组队完成且由队长领取")

		return
	elseif 取队伍最低等级(玩家数据[id].队伍, 30) then
		常规提示(id, "#Y/等级小于30级的玩家无法领取此任务")

		return
	elseif 活动次数查询(玩家数据[id].队伍, "皇宫飞贼") == false then
		return
	elseif 取队伍任务(玩家数据[id].队伍, 12) then
		常规提示(id, "#Y/队伍中已有队员领取过此任务了")

		return
	elseif 取队伍人数(id) < 3 then
		常规提示(id, "#Y/本任务至少需要3人组队完成")

		return
	end

	local 任务id = id .. "_12_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999)

	if 皇宫飞贼[id] == nil then
		皇宫飞贼[id] = 1
	elseif 皇宫飞贼[id] >= 5 then
		皇宫飞贼[id] = 1
	end

	local 模型 = "护卫"
	local 名称 = "江湖大盗"

	if 皇宫飞贼[id] == 1 then
		名称 = "毛贼"
		模型 = "强盗"
	elseif 皇宫飞贼[id] == 2 then
		名称 = "销赃贼"
		模型 = "吸血鬼"
	elseif 皇宫飞贼[id] == 3 then
		名称 = "宝贼"
		模型 = "夜罗刹"
	elseif 皇宫飞贼[id] == 4 then
		名称 = "盗贼首领"
		模型 = "雨师"
	end

	local 地图 = {
		1001,
		1110,
		1173,
		1198,
		1002
	}
	地图 = 地图[ygsj(#地图)]
	local xy = 地图处理类.地图坐标[地图]:取随机点()
	local x临时人物队伍 = {}

	if 玩家数据[id].队伍 ~= nil and 玩家数据[id].队伍 ~= 0 then
		for i = 1, #队伍数据[玩家数据[id].队伍].成员数据 do
			if 队伍数据[玩家数据[id].队伍].成员数据[i] ~= nil then
				x临时人物队伍[#x临时人物队伍 + 1] = 队伍数据[玩家数据[id].队伍].成员数据[i]
			end
		end
	end

	任务数据[任务id] = {
		结束 = 3600,
		类型 = 12,
		领取人id = x临时人物队伍,
		id = 任务id,
		起始 = os.time(),
		玩家id = {},
		队伍组 = {},
		名称 = 名称,
		模型 = 模型,
		x = xy.x,
		y = xy.y,
		地图编号 = 地图,
		地图名称 = 取地图名称(地图),
		分类 = 皇宫飞贼[id]
	}

	地图处理类:添加单位(任务id)

	local 队伍id = 玩家数据[id].队伍

	for n = 1, #队伍数据[队伍id].成员数据 do
		local 临时id = 队伍数据[队伍id].成员数据[n]

		if 皇宫飞贼[临时id] == nil then
			皇宫飞贼[临时id] = 1
		end

		任务数据[任务id].队伍组[#任务数据[任务id].队伍组 + 1] = 临时id

		玩家数据[临时id].角色:添加任务(任务id)
		发送数据(玩家数据[临时id].连接id, 1501, {
			名称 = "御林军左统领",
			模型 = "护卫",
			对话 = format("据可靠消息，偷盗皇宫宝物的#Y/%s#W/正躲藏#G/%s(%s,%s)#W/附近，请立即前去缉拿。", 任务数据[任务id].名称, 任务数据[任务id].地图名称, 任务数据[任务id].x, 任务数据[任务id].y)
		})
	end

	return true
end

function 任务处理类:添加皇宫贼王任务(id)
	if 玩家数据[id].队伍 == 0 or 玩家数据[id].队长 == false then
		常规提示(id, "#Y/该任务必须组队完成且由队长领取")

		return
	elseif 取队伍最低等级(玩家数据[id].队伍, 30) then
		常规提示(id, "#Y/等级小于30级的玩家无法领取此任务")

		return
	elseif 取队伍人数(id) < 3 then
		常规提示(id, "#Y/本任务至少需要3人组队完成")

		return
	elseif 取队伍任务(玩家数据[id].队伍, 15) then
		常规提示(id, "#Y/队伍中已有队员领取过此任务了")

		return
	elseif 活动次数查询(id, "皇宫飞贼贼王") == false then
		return
	end

	local 队伍id = 玩家数据[id].队伍

	for n = 1, #队伍数据[队伍id].成员数据 do
		local 临时id = 队伍数据[队伍id].成员数据[n]

		if 皇宫飞贼.贼王[临时id] == nil or 皇宫飞贼.贼王[临时id] < 4 then
			添加最后对话(id, format("缉拿贼王需要先完成4次飞贼任务,#G%s#W尚未满足条件。", 玩家数据[临时id].角色.数据.名称))

			return
		elseif 皇宫飞贼.贼王[临时id] == -1 then
			添加最后对话(id, format("#G%s#W在本次活动中已经成功缉拿过贼王，现在不可以再次领取缉拿贼王任务哟。贼王任务每次活动都只可缉拿一次哟。", 玩家数据[临时id].角色.数据.名称))

			return
		end
	end

	local 名称 = "贼王" .. 宝图名字.姓[取随机数(1, #宝图名字.姓)] .. 宝图名字.名[取随机数(1, #宝图名字.名)]

	if ygsj() <= 70 then
		名称 = 名称 .. 宝图名字.氏[取随机数(1, #宝图名字.氏)]
	end

	local 模型 = "黑山老妖"
	local 地图 = {
		1001,
		1110,
		1173,
		1198,
		1002
	}
	地图 = 地图[ygsj(#地图)]
	local xy = 地图处理类.地图坐标[地图]:取随机点()
	local x临时人物队伍 = {}

	if 玩家数据[id].队伍 ~= nil and 玩家数据[id].队伍 ~= 0 then
		for i = 1, #队伍数据[玩家数据[id].队伍].成员数据 do
			if 队伍数据[玩家数据[id].队伍].成员数据[i] ~= nil then
				x临时人物队伍[#x临时人物队伍 + 1] = 队伍数据[玩家数据[id].队伍].成员数据[i]
			end
		end
	end

	local 任务id = id .. "_15_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999)
	任务数据[任务id] = {
		结束 = 3600,
		类型 = 15,
		领取人id = x临时人物队伍,
		id = 任务id,
		起始 = os.time(),
		玩家id = {},
		队伍组 = {},
		名称 = 名称,
		模型 = 模型,
		x = xy.x,
		y = xy.y,
		地图编号 = 地图,
		地图名称 = 取地图名称(地图),
		分类 = 皇宫飞贼.贼王[id]
	}

	地图处理类:添加单位(任务id)

	local 队伍id = 玩家数据[id].队伍

	for n = 1, #队伍数据[队伍id].成员数据 do
		if 队伍处理类:取是否助战(玩家数据[id].队伍, n) == 0 then
			local 临时id = 队伍数据[队伍id].成员数据[n]
			皇宫飞贼.贼王[临时id] = 皇宫飞贼.贼王[临时id] - 4
			任务数据[任务id].队伍组[#任务数据[任务id].队伍组 + 1] = 临时id

			玩家数据[临时id].角色:添加任务(任务id)
			发送数据(玩家数据[临时id].连接id, 1501, {
				名称 = "御林军左统领",
				模型 = "护卫",
				对话 = format("终于找到罪魁祸首的线索了，偷盗皇宫宝物的#Y/%s#W/就在#G/%s(%s,%s)#W/附近，请立即前去缉拿，不要给他逃跑的机会！", 任务数据[任务id].名称, 任务数据[任务id].地图名称, 任务数据[任务id].x, 任务数据[任务id].y)
			})
		end
	end

	return true
end

function 任务处理类:添加江湖任务(id)
	if 玩家数据[id].队伍 == 0 or 玩家数据[id].队长 == false then
		常规提示(id, "#Y/该任务必须组队完成且由队长领取")

		return
	elseif 玩家数据[id].角色:取任务(11) ~= 0 then
		添加最后对话(id, "你已经领取过该任务抓紧去完成吧！")

		return
	elseif 活动次数查询(id, "初出江湖") == false then
		return
	elseif 取队伍最低等级(玩家数据[id].队伍, 10) then
		常规提示(id, "#Y/等级小于10级的玩家无法领取此任务")

		return
	elseif 取队伍任务(玩家数据[id].队伍, 11) then
		常规提示(id, "#Y/队伍中已有队员领取过此任务了")

		return
	elseif 取队伍人数(id) < 3 then
		常规提示(id, "#Y/本任务至少需要三人组队完成")

		return
	end

	local 任务id = id .. "_11_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999)
	local 地图范围 = {
		1501,
		1193,
		1506
	}
	local 地图 = 地图范围[取随机数(1, #地图范围)]
	local 随机参数 = ygsj()
	local 模型 = "护卫"
	local 名称 = "江湖大盗"
	local xy = 地图处理类.地图坐标[地图]:取随机点()
	local x临时人物队伍 = {}

	if 玩家数据[id].队伍 ~= nil and 玩家数据[id].队伍 ~= 0 then
		for i = 1, #队伍数据[玩家数据[id].队伍].成员数据 do
			if 队伍处理类:取是否助战(玩家数据[id].队伍, i) == 0 and 队伍数据[玩家数据[id].队伍].成员数据[i] ~= nil then
				x临时人物队伍[#x临时人物队伍 + 1] = 队伍数据[玩家数据[id].队伍].成员数据[i]
			end
		end
	end

	任务数据[任务id] = {
		结束 = 3600,
		类型 = 11,
		领取人id = x临时人物队伍,
		id = 任务id,
		起始 = os.time(),
		玩家id = {},
		队伍组 = {},
		名称 = 名称,
		模型 = 模型,
		x = xy.x,
		y = xy.y,
		地图编号 = 地图,
		地图名称 = 取地图名称(地图)
	}

	地图处理类:添加单位(任务id)

	local 队伍id = 玩家数据[id].队伍

	for n = 1, #队伍数据[队伍id].成员数据 do
		if 队伍处理类:取是否助战(玩家数据[id].队伍, n) == 0 then
			local 临时id = 队伍数据[队伍id].成员数据[n]
			任务数据[任务id].队伍组[#任务数据[任务id].队伍组 + 1] = 临时id
			玩家数据[临时id].角色.数据.江湖次数 = 玩家数据[临时id].角色.数据.江湖次数 + 1

			玩家数据[临时id].角色:添加任务(任务id)
			发送数据(玩家数据[临时id].连接id, 1501, {
				名称 = "杜少海",
				模型 = "男人_店小二",
				对话 = format("听说近日有#Y/%s#W/正在#G/%s(%s,%s)#W/处作恶，请立即前去查明真相。这些江湖大盗中有不少为侠客所扮，所以请少侠多仔细分辨他们的身份。", 任务数据[任务id].名称, 任务数据[任务id].地图名称, 任务数据[任务id].x, 任务数据[任务id].y)
			})
		end
	end

	return true
end

function 任务处理类:开启天蓬娶亲副本(id)
	if 玩家数据[id].队伍 == 0 or 玩家数据[id].队长 == false then
		常规提示(id, "#Y/该任务必须组队完成且由队长领取")

		return
	elseif 取队伍人数(id) < 3 then
		常规提示(id, "#Y此副本要求队伍人数不低于3人")

		return
	elseif 取队伍最低等级(玩家数据[id].队伍, 50) then
		常规提示(id, "#Y/队伍里有等级小于50级的玩家或者助战")

		return
	end

	local 队伍id = 玩家数据[id].队伍

	for n = 1, #队伍数据[队伍id].成员数据 do
		local 临时id = 队伍数据[队伍id].成员数据[n]

		if 玩家数据[临时id].角色:取任务(34470) ~= 0 then
			常规提示(id, "#Y" .. 玩家数据[临时id].角色.数据.名称 .. "正在进行副本任务，无法领取新的副本")

			return
		end
	end

	副本数据.天蓬娶亲.进行[id] = {
		进程 = 1
	}
	local 任务id = id .. "_34470_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999)
	任务数据[任务id] = {
		类型 = 34470,
		地图编号 = 34470,
		结束 = 7200,
		id = 任务id,
		起始 = os.time(),
		玩家id = {},
		队伍组 = {},
		副本id = id
	}
	副本数据.天蓬娶亲.进行[id].真实副本id = 任务id

	for n = 1, #队伍数据[队伍id].成员数据 do
		if 队伍处理类:取是否助战(玩家数据[id].队伍, n) == 0 then
			任务数据[任务id].队伍组[#任务数据[任务id].队伍组 + 1] = 队伍数据[队伍id].成员数据[n]
		end
	end

	self:设置天蓬娶亲副本(id)

	local 队伍id = 玩家数据[id].队伍

	for n = 1, #队伍数据[队伍id].成员数据 do
		if 队伍处理类:取是否助战(玩家数据[id].队伍, n) == 0 then
			local 临时id = 队伍数据[队伍id].成员数据[n]

			玩家数据[临时id].角色:添加任务(任务id)
			常规提示(临时id, "#Y你开启了天蓬娶亲副本")
			地图处理类:跳转地图(临时id, 副本传送坐标[副本名称[id]][1], 副本传送坐标[副本名称[id]][2], 副本传送坐标[副本名称[id]][3])
			添加最后对话(临时id, 副本序言[副本名称[id]])
		end
	end
end

function 任务处理类:设置天蓬娶亲副本(id)
	if 副本数据.天蓬娶亲.进行[id] == nil then
		return
	end

	local fbid = 副本数据.天蓬娶亲.进行[id].真实副本id

	if 副本数据.天蓬娶亲.进行[id].进程 == 1 then
	elseif 副本数据.天蓬娶亲.进行[id].进程 == 2 then
	elseif 副本数据.天蓬娶亲.进行[id].进程 == 3 then
	elseif 副本数据.天蓬娶亲.进行[id].进程 == 4 then
	elseif 副本数据.天蓬娶亲.进行[id].进程 == 5 then
	end
end

function 任务处理类:开启白龙闹海副本(id)
	if 玩家数据[id].队伍 == 0 or 玩家数据[id].队长 == false then
		常规提示(id, "#Y/该任务必须组队完成且由队长领取")

		return
	elseif 取队伍人数(id) < 3 then
		常规提示(id, "#Y此副本要求队伍人数不低于3人")

		return
	elseif 取队伍最低等级(玩家数据[id].队伍, 60) then
		常规提示(id, "#Y/队伍里有等级小于60级的玩家或者助战")

		return
	end

	local 队伍id = 玩家数据[id].队伍

	for n = 1, #队伍数据[队伍id].成员数据 do
		local 临时id = 队伍数据[队伍id].成员数据[n]

		if 玩家数据[临时id].角色:取任务(34471) ~= 0 then
			常规提示(id, "#Y" .. 玩家数据[临时id].角色.数据.名称 .. "正在进行副本任务，无法领取新的副本")

			return
		end
	end

	副本数据.白龙闹海.进行[id] = {
		进程 = 1
	}
	local 任务id = id .. "_34471_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999)
	任务数据[任务id] = {
		类型 = 34471,
		地图编号 = 34471,
		结束 = 7200,
		id = 任务id,
		起始 = os.time(),
		玩家id = {},
		队伍组 = {},
		副本id = id
	}
	副本数据.白龙闹海.进行[id].真实副本id = 任务id

	for n = 1, #队伍数据[队伍id].成员数据 do
		if 队伍处理类:取是否助战(玩家数据[id].队伍, n) == 0 then
			任务数据[任务id].队伍组[#任务数据[任务id].队伍组 + 1] = 队伍数据[队伍id].成员数据[n]
		end
	end

	self:设置白龙闹海副本(id)

	local 队伍id = 玩家数据[id].队伍

	for n = 1, #队伍数据[队伍id].成员数据 do
		if 队伍处理类:取是否助战(玩家数据[id].队伍, n) == 0 then
			local 临时id = 队伍数据[队伍id].成员数据[n]

			玩家数据[临时id].角色:添加任务(任务id)
			常规提示(临时id, "#Y你开启了白龙闹海副本")
			地图处理类:跳转地图(临时id, 副本传送坐标[副本名称[id]][1], 副本传送坐标[副本名称[id]][2], 副本传送坐标[副本名称[id]][3])
			添加最后对话(临时id, 副本序言[副本名称[id]])
		end
	end
end

function 任务处理类:设置白龙闹海副本(id)
	if 副本数据.白龙闹海.进行[id] == nil then
		return
	end

	local fbid = 副本数据.白龙闹海.进行[id].真实副本id

	if 副本数据.白龙闹海.进行[id].进程 == 1 then
		local 任务id = id .. "_344711_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999) .. "_1_" .. 1
		local 地图 = 34471
		local xy = {
			x = 69,
			y = 27
		}
		任务数据[任务id] = {
			行走开关 = false,
			方向 = 0,
			结束 = 7200,
			模型 = "男人_小白龙",
			名称 = "小白龙",
			类型 = 344711,
			id = 任务id,
			起始 = os.time(),
			玩家id = {},
			队伍组 = 任务数据[fbid].队伍组,
			x = xy.x,
			y = xy.y,
			副本id = id,
			地图编号 = 地图,
			地图名称 = 取地图名称(地图),
			真实副本id = fbid
		}

		地图处理类:添加单位(任务id)
	elseif 副本数据.白龙闹海.进行[id].进程 == 2 then
	elseif 副本数据.白龙闹海.进行[id].进程 == 3 then
		local 任务id = id .. "_344712_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999) .. "_1_" .. 1
		local 地图 = 34471
		local xy = {
			x = 12,
			y = 50
		}
		任务数据[任务id] = {
			行走开关 = false,
			方向 = 0,
			结束 = 7200,
			模型 = "龙太子",
			名称 = "九头虫",
			类型 = 344712,
			id = 任务id,
			起始 = os.time(),
			玩家id = {},
			队伍组 = 任务数据[fbid].队伍组,
			x = xy.x,
			y = xy.y,
			副本id = id,
			地图编号 = 地图,
			地图名称 = 取地图名称(地图),
			真实副本id = fbid
		}

		地图处理类:添加单位(任务id)
	elseif 副本数据.白龙闹海.进行[id].进程 == 4 then
		local 任务id = id .. "_344713_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999) .. "_1_" .. 1
		local 地图 = 34471
		local xy = {
			x = 19,
			y = 54
		}
		任务数据[任务id] = {
			行走开关 = false,
			方向 = 0,
			结束 = 7200,
			模型 = "帮派妖兽",
			名称 = "九头虫相柳合体",
			类型 = 344713,
			id = 任务id,
			起始 = os.time(),
			玩家id = {},
			队伍组 = 任务数据[fbid].队伍组,
			x = xy.x,
			y = xy.y,
			副本id = id,
			地图编号 = 地图,
			地图名称 = 取地图名称(地图),
			真实副本id = fbid
		}

		地图处理类:添加单位(任务id)
	elseif 副本数据.白龙闹海.进行[id].进程 == 5 then
	end
end

function 任务处理类:开启乌鸡副本(id)
	if 玩家数据[id].队伍 == 0 or 玩家数据[id].队长 == false then
		常规提示(id, "#Y/该任务必须组队完成且由队长领取")

		return
	elseif 取队伍人数(id) < 3 then
		常规提示(id, "#Y此副本要求队伍人数不低于3人")

		return
	elseif 取队伍最低等级(玩家数据[id].队伍, 30) then
		常规提示(id, "#Y/队伍里有等级小于30级的玩家或者助战")

		return
	end

	local 队伍id = 玩家数据[id].队伍

	for n = 1, #队伍数据[队伍id].成员数据 do
		local 临时id = 队伍数据[队伍id].成员数据[n]

		if 副本数据.乌鸡国.完成[临时id] ~= nil then
			常规提示(id, "#Y" .. 玩家数据[临时id].角色.数据.名称 .. "本日已经完成过此副本了")

			return
		elseif 玩家数据[临时id].角色:取任务(120) ~= 0 then
			常规提示(id, "#Y" .. 玩家数据[临时id].角色.数据.名称 .. "正在进行副本任务，无法领取新的副本")

			return
		end
	end

	副本数据.乌鸡国.进行[id] = {
		进程 = 1
	}
	local 任务id = id .. "_120_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999)
	任务数据[任务id] = {
		类型 = 120,
		结束 = 7200,
		id = 任务id,
		起始 = os.time(),
		玩家id = {},
		队伍组 = {},
		副本id = id
	}
	副本数据.乌鸡国.进行[id].真实副本id = 任务id

	for n = 1, #队伍数据[队伍id].成员数据 do
		if 队伍处理类:取是否助战(玩家数据[id].队伍, n) == 0 then
			任务数据[任务id].队伍组[#任务数据[任务id].队伍组 + 1] = 队伍数据[队伍id].成员数据[n]
		end
	end

	self:设置乌鸡国副本(id)

	local 队伍id = 玩家数据[id].队伍

	for n = 1, #队伍数据[队伍id].成员数据 do
		if 队伍处理类:取是否助战(玩家数据[id].队伍, n) == 0 then
			local 临时id = 队伍数据[队伍id].成员数据[n]

			玩家数据[临时id].角色:添加任务(任务id)
			常规提示(临时id, "#Y你开启了乌鸡国副本")
		end
	end
end

function 任务处理类:设置乌鸡国副本(id)
	if 副本数据.乌鸡国.进行[id] == nil then
		return
	end

	local fbid = 副本数据.乌鸡国.进行[id].真实副本id

	if 副本数据.乌鸡国.进行[id].进程 == 1 then
		副本数据.乌鸡国.进行[id].木妖数量 = 0

		for n = 1, 副本减负.乌鸡国[1] do
			local 任务id = id .. "_121_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999) .. "_1_" .. n
			local 地图 = 6001
			local xy = 地图处理类.地图坐标[地图]:取随机点()
			任务数据[任务id] = {
				名称 = "芭蕉木妖",
				行走开关 = true,
				变异 = true,
				结束 = 7200,
				模型 = "树怪",
				类型 = 121,
				id = 任务id,
				起始 = os.time(),
				玩家id = {},
				队伍组 = 任务数据[fbid].队伍组,
				x = xy.x,
				y = xy.y,
				副本id = id,
				地图编号 = 地图,
				地图名称 = 取地图名称(地图),
				真实副本id = fbid
			}

			地图处理类:添加单位(任务id)
		end
	elseif 副本数据.乌鸡国.进行[id].进程 == 2 then
		副本数据.乌鸡国.进行[id].和尚数量 = 0

		for n = 1, 副本减负.乌鸡国[2] do
			local 任务id = id .. "_122_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999) .. "_1_" .. n
			local 地图 = 6001
			local xy = 地图处理类.地图坐标[地图]:取随机点()
			任务数据[任务id] = {
				名称 = "热心仙人",
				行走开关 = true,
				结束 = 7200,
				类型 = 122,
				模型 = "热心仙人",
				id = 任务id,
				起始 = os.time(),
				玩家id = {},
				队伍组 = 任务数据[fbid].队伍组,
				x = xy.x,
				y = xy.y,
				副本id = id,
				地图编号 = 地图,
				地图名称 = 取地图名称(地图),
				真实副本id = fbid
			}

			地图处理类:添加单位(任务id)
		end
	elseif 副本数据.乌鸡国.进行[id].进程 == 3 then
		for n = 1, 1 do
			local 任务id = id .. "_123_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999) .. "_1_" .. n
			local 地图 = 6001
			local xy = 地图处理类.地图坐标[地图]:取随机点()
			任务数据[任务id] = {
				名称 = "乌鸡国王",
				y = 71,
				方向 = 1,
				x = 115,
				结束 = 7200,
				类型 = 123,
				模型 = "文伯",
				id = 任务id,
				起始 = os.time(),
				玩家id = {},
				队伍组 = 任务数据[fbid].队伍组,
				副本id = id,
				地图编号 = 地图,
				地图名称 = 取地图名称(地图),
				真实副本id = fbid
			}

			地图处理类:添加单位(任务id)
		end

		local 名称 = {
			"囚神妖怪",
			"拘灵妖怪",
			"缚仙妖怪"
		}
		副本数据.乌鸡国.进行[id].序列 = {
			false,
			false,
			false
		}

		for n = 1, 3 do
			local 任务id = id .. "_124_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999) .. "_1_" .. n
			local 地图 = 6002
			local xy = 地图处理类.地图坐标[地图]:取随机点()
			任务数据[任务id] = {
				行走开关 = true,
				结束 = 7200,
				模型 = "树怪",
				类型 = 124,
				id = 任务id,
				起始 = os.time(),
				玩家id = {},
				队伍组 = 任务数据[fbid].队伍组,
				名称 = 名称[n],
				x = xy.x,
				y = xy.y,
				序列 = n,
				副本id = id,
				地图编号 = 地图,
				地图名称 = 取地图名称(地图),
				真实副本id = fbid
			}

			地图处理类:添加单位(任务id)
		end
	elseif 副本数据.乌鸡国.进行[id].进程 == 4 then
		副本数据.乌鸡国.进行[id].鬼祟数量 = 0
		local 随机模型 = {
			"牛妖",
			"花妖",
			"黑熊精",
			"蛤蟆精"
		}

		for n = 1, 副本减负.乌鸡国[3] do
			local 任务id = id .. "_125_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999) .. "_1_" .. n
			local 地图 = 6002
			local xy = 地图处理类.地图坐标[地图]:取随机点()
			任务数据[任务id] = {
				名称 = "鬼祟小怪",
				行走开关 = true,
				结束 = 7200,
				类型 = 125,
				id = 任务id,
				起始 = os.time(),
				玩家id = {},
				队伍组 = 任务数据[fbid].队伍组,
				模型 = 随机模型[取随机数(1, #随机模型)],
				x = xy.x,
				y = xy.y,
				副本id = id,
				地图编号 = 地图,
				地图名称 = 取地图名称(地图),
				真实副本id = fbid
			}

			地图处理类:添加单位(任务id)
		end
	elseif 副本数据.乌鸡国.进行[id].进程 == 5 then
		副本数据.乌鸡国.进行[id].数量 = 2
		local xy = {
			{
				x = 50,
				y = 47
			},
			{
				x = 59,
				y = 42
			}
		}
		local 方向 = {
			{
				2
			},
			{
				1
			}
		}
		local 真假 = {
			false,
			false,
			[取随机数(1, 2)] = true
		}

		for n = 1, 2 do
			local 任务id = id .. "_126_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999) .. "_1_" .. n
			local 地图 = 6002
			任务数据[任务id] = {
				名称 = "乌鸡国王",
				结束 = 7200,
				类型 = 126,
				模型 = "文伯",
				id = 任务id,
				起始 = os.time(),
				玩家id = {},
				队伍组 = 任务数据[fbid].队伍组,
				x = xy[n].x,
				y = xy[n].y,
				真假 = 真假[n],
				副本id = id,
				地图编号 = 地图,
				地图名称 = 取地图名称(地图),
				真实副本id = fbid
			}

			地图处理类:添加单位(任务id)
		end
	end
end

function 任务处理类:开启一斛珠(id)
	if 玩家数据[id].队伍 == 0 or 玩家数据[id].队长 == false then
		常规提示(id, "#Y/该任务必须组队完成且由队长领取")

		return
	elseif 取队伍人数(id) < 3 then
		常规提示(id, "#Y此副本要求队伍人数不低于3人")

		return
	elseif 取队伍最低等级(玩家数据[id].队伍, 50) then
		常规提示(id, "#Y/队伍里有等级小于50级的玩家或者助战")

		return
	end

	local 队伍id = 玩家数据[id].队伍

	for n = 1, #队伍数据[队伍id].成员数据 do
		local 临时id = 队伍数据[队伍id].成员数据[n]

		if 玩家数据[临时id].角色:取任务(7001) ~= 0 then
			常规提示(id, "#Y" .. 玩家数据[临时id].角色.数据.名称 .. "正在进行副本任务，无法领取新的副本")

			return
		end

		if 玩家数据[临时id].角色.数据.看戏门票次数 == nil or 玩家数据[临时id].角色.数据.看戏门票次数 < 1 then
			常规提示(id, "#R" .. 玩家数据[临时id].角色.数据.名称 .. "#Y没有购买门票，没法看戏哦！")

			return
		end
	end

	local 任务id = id .. "_7001_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999)
	随机序列 = 随机序列 + 1
	任务数据[任务id] = {
		类型 = 7001,
		结束 = 10800,
		id = 任务id,
		起始 = os.time(),
		玩家id = {},
		队伍组 = {},
		副本id = 任务id
	}

	for n = 1, #队伍数据[队伍id].成员数据 do
		if 队伍处理类:取是否助战(玩家数据[id].队伍, n) == 0 then
			local 临时id = 队伍数据[队伍id].成员数据[n]
			任务数据[任务id].队伍组[#任务数据[任务id].队伍组 + 1] = 队伍数据[队伍id].成员数据[n]
			玩家数据[临时id].角色.数据.看戏门票次数 = 玩家数据[临时id].角色.数据.看戏门票次数 - 1
		end
	end

	副本处理类:加载副本("一斛珠", 任务id, id)
end

function 任务处理类:副本传送(id, 类型)
	if 玩家数据[id].队伍 == 0 or 玩家数据[id].队长 == false then
		常规提示(id, "#Y/该任务必须组队完成且由队长领取")

		return
	elseif 取队伍人数(id) < 1 then
		常规提示(id, "#Y此副本要求队伍人数不低于5人")

		return
	end

	if 类型 == 1 then
		if 玩家数据[id].角色:取任务(120) == 0 then
			常规提示(id, "#Y/你尚未开启此副本")

			return
		elseif 玩家数据[id].队伍 ~= 0 then
			for i = 1, #队伍数据[玩家数据[id].队伍].成员数据 do
				if i ~= 1 and (玩家数据[队伍数据[玩家数据[id].队伍].成员数据[i]].角色:取任务(120) == 0 or 玩家数据[队伍数据[玩家数据[id].队伍].成员数据[i]].角色:取任务(120) ~= 玩家数据[id].角色:取任务(120)) then
					常规提示(id, 玩家数据[队伍数据[玩家数据[id].队伍].成员数据[i]].角色.数据.名称 .. "#Y/尚未开启此副本或者与您并不是同一个副本")

					return
				end
			end
		end

		local 副本id = 任务数据[玩家数据[id].角色:取任务(120)].副本id
		local 进程 = 副本数据.乌鸡国.进行[副本id].进程
		local 地图 = 6001
		local x = 0
		local y = 0

		if 进程 < 3 then
			y = 14
			x = 112
		else
			地图 = 6002
			y = 56
			x = 29
		end

		地图处理类:跳转地图(id, 地图, x, y)
	elseif 类型 == 2 then
		if 玩家数据[id].角色:取任务(130) == 0 then
			常规提示(id, "#Y/你尚未开启此副本")

			return
		elseif 玩家数据[id].队伍 ~= 0 then
			for i = 1, #队伍数据[玩家数据[id].队伍].成员数据 do
				if i ~= 1 and (玩家数据[队伍数据[玩家数据[id].队伍].成员数据[i]].角色:取任务(130) == 0 or 玩家数据[队伍数据[玩家数据[id].队伍].成员数据[i]].角色:取任务(130) ~= 玩家数据[id].角色:取任务(130)) then
					常规提示(id, 玩家数据[队伍数据[玩家数据[id].队伍].成员数据[i]].角色.数据.名称 .. "#Y/尚未开启此副本或者与您并不是同一个副本")

					return
				end
			end
		end

		local 副本id = 任务数据[玩家数据[id].角色:取任务(130)].副本id
		local 进程 = 副本数据.车迟斗法.进行[副本id].进程
		local 地图 = 6021
		local x = 0
		local y = 0

		if 进程 < 4 then
			y = 133
			x = 10
		elseif 进程 < 5 then
			地图 = 6022
			y = 32
			x = 38
		else
			地图 = 6023
			y = 153
			x = 40
		end

		地图处理类:跳转地图(id, 地图, x, y)
		玩家数据[id].角色:刷新任务跟踪()
	elseif 类型 == 3 then
		if 玩家数据[id].角色:取任务(150) == 0 then
			常规提示(id, "#Y/你尚未开启此副本")

			return
		elseif 玩家数据[id].队伍 ~= 0 then
			for i = 1, #队伍数据[玩家数据[id].队伍].成员数据 do
				if i ~= 1 and (玩家数据[队伍数据[玩家数据[id].队伍].成员数据[i]].角色:取任务(150) == 0 or 玩家数据[队伍数据[玩家数据[id].队伍].成员数据[i]].角色:取任务(150) ~= 玩家数据[id].角色:取任务(150)) then
					常规提示(id, 玩家数据[队伍数据[玩家数据[id].队伍].成员数据[i]].角色.数据.名称 .. "#Y/尚未开启此副本或者与您并不是同一个副本")

					return
				end
			end
		end

		local 副本id = 任务数据[玩家数据[id].角色:取任务(150)].副本id
		local 进程 = 副本数据.水陆大会.进行[副本id].进程
		local 地图 = 6024
		local x = 35
		local y = 71

		if 进程 >= 7 then
			地图处理类:跳转地图(id, 6026, 43, 84)
		else
			地图处理类:跳转地图(id, 地图, x, y)
		end
	elseif 类型 == 4 then
		if 玩家数据[id].角色:取任务(160) == 0 then
			常规提示(id, "#Y/你尚未开启此副本")

			return
		elseif 玩家数据[id].队伍 ~= 0 then
			for i = 1, #队伍数据[玩家数据[id].队伍].成员数据 do
				if i ~= 1 and (玩家数据[队伍数据[玩家数据[id].队伍].成员数据[i]].角色:取任务(160) == 0 or 玩家数据[队伍数据[玩家数据[id].队伍].成员数据[i]].角色:取任务(160) ~= 玩家数据[id].角色:取任务(160)) then
					常规提示(id, 玩家数据[队伍数据[玩家数据[id].队伍].成员数据[i]].角色.数据.名称 .. "#Y/尚未开启此副本或者与您并不是同一个副本")

					return
				end
			end
		end

		local 副本id = 任务数据[玩家数据[id].角色:取任务(160)].副本id
		local 进程 = 副本数据.通天河.进行[副本id].进程
		local 地图 = 6027
		local x = 100
		local y = 100

		if 进程 < 6 then
			y = 100
			x = 100
		elseif 进程 < 9 then
			地图 = 6028
			y = 22
			x = 27
		elseif 进程 < 10 then
			地图 = 6029
			y = 59
			x = 103
		else
			地图 = 6030
			y = 38
			x = 106
		end

		地图处理类:跳转地图(id, 地图, x, y)
	elseif 类型 == 5 then
		if 玩家数据[id].角色:取任务(180) == 0 then
			常规提示(id, "#Y/你尚未开启此副本")

			return
		elseif 玩家数据[id].队伍 ~= 0 then
			for i = 1, #队伍数据[玩家数据[id].队伍].成员数据 do
				if i ~= 1 and (玩家数据[队伍数据[玩家数据[id].队伍].成员数据[i]].角色:取任务(180) == 0 or 玩家数据[队伍数据[玩家数据[id].队伍].成员数据[i]].角色:取任务(180) ~= 玩家数据[id].角色:取任务(180)) then
					常规提示(id, 玩家数据[队伍数据[玩家数据[id].队伍].成员数据[i]].角色.数据.名称 .. "#Y/尚未开启此副本或者与您并不是同一个副本")

					return
				end
			end
		end

		local 副本id = 任务数据[玩家数据[id].角色:取任务(180)].副本id
		local 进程 = 副本数据.大闹天宫.进行[副本id].进程
		local 地图 = 6031
		local x = 97
		local y = 43

		if 进程 < 4 then
			y = 43
			x = 97
		elseif 进程 < 5 then
			地图 = 6032
			y = 22
			x = 27
		elseif 进程 < 8 then
			地图 = 6033
			y = 59
			x = 103
		else
			地图 = 6035
			y = 145
			x = 29
		end

		地图处理类:跳转地图(id, 地图, x, y)
	elseif 类型 == 6 then
		if 玩家数据[id].角色:取任务(191) == 0 then
			常规提示(id, "#Y/你尚未开启此副本")

			return
		elseif 玩家数据[id].队伍 ~= 0 then
			for i = 1, #队伍数据[玩家数据[id].队伍].成员数据 do
				if i ~= 1 and (玩家数据[队伍数据[玩家数据[id].队伍].成员数据[i]].角色:取任务(191) == 0 or 玩家数据[队伍数据[玩家数据[id].队伍].成员数据[i]].角色:取任务(191) ~= 玩家数据[id].角色:取任务(191)) then
					常规提示(id, 玩家数据[队伍数据[玩家数据[id].队伍].成员数据[i]].角色.数据.名称 .. "#Y/尚未开启此副本或者与您并不是同一个副本")

					return
				end
			end
		end

		local 副本id = 任务数据[玩家数据[id].角色:取任务(191)].副本id
		local 进程 = 副本数据.齐天大圣.进行[副本id].进程
		local 地图 = 6036
		local x = 12
		local y = 108

		if 进程 < 3 then
			y = 108
			x = 12
		elseif 进程 <= 4 then
			地图 = 6037
			y = 101
			x = 100
		elseif 进程 == 5 then
			地图 = 6036
			y = 108
			x = 12
		elseif 进程 <= 10 then
			地图 = 6038
			y = 133
			x = 203
		elseif 进程 == 11 then
			地图 = 6036
			y = 108
			x = 12
		else
			地图 = 6039
			y = 38
			x = 30
		end

		地图处理类:跳转地图(id, 地图, x, y)
	end
end

function 任务处理类:添加梦靥夜叉(id)
	local 地图范围 = {
		1173,
		1091,
		1514,
		1174
	}
	local x待发送数据 = {}
	local 临时数量 = 5
	local 地图 = 地图范围[ygsj(#地图范围)]
	x待发送数据[地图] = {}

	for n = 1, 临时数量 do
		local 任务id = 地图 .. "_9002_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999) .. "_" .. n
		随机序列 = 随机序列 + 1
		local xy = 地图处理类.地图坐标[地图]:取随机点()
		local 模型范围 = {
			"夜罗刹"
		}
		local 模型 = 模型范围[取随机数(1, #模型范围)]
		任务数据[任务id] = {
			玩家id = 0,
			行走开关 = false,
			变异 = true,
			名称 = "梦靥夜叉",
			结束 = 1200,
			显示饰品 = true,
			事件 = "明雷活动",
			类型 = 9002,
			id = 任务id,
			起始 = os.time(),
			队伍组 = {},
			模型 = 模型,
			等级 = 取随机数(1, 140),
			x = xy.x,
			y = xy.y,
			地图编号 = 地图,
			地图名称 = 取地图名称(地图)
		}

		table.insert(x待发送数据[地图], 地图处理类:批量添加单位(任务id))
	end

	广播消息({
		频道 = "xt",
		内容 = format("#Y/突然受到#G%s#Y的惊扰，一群携带宝贝的梦靥夜叉跑到了#S%s#Y，三界勇士们赶紧去寻找他们吧，若有幸碰到多只携宝龙龟，将获得意想不到物品奖励哦#80。", 玩家数据[id].角色.数据.名称, 取地图名称(地图))
	})

	local 地图编号 = 地图

	for n, v in pairs(地图处理类.地图玩家[地图编号]) do
		if 地图处理类:取同一地图(地图编号, id, n, 1) then
			发送数据(玩家数据[n].连接id, 1021, x待发送数据[地图编号])
		end
	end

	x待发送数据 = nil
	玩家数据[id].梦靥夜叉 = 地图

	添加最后对话(id, "受到你的惊扰，一群梦靥夜叉跑到#Y" .. 取地图名称(地图) .. "#祸害人间，是否前去驱逐它们？", {
		"好的，送我们过去",
		"还是不去了吧"
	}, nil, 1)
end

function 任务处理类:添加鬼王支线(id)
	if 取队伍任务(玩家数据[id].队伍, 9000) then
		常规提示(id, "#Y/队伍中已有队员领取过此任务了")

		return
	end

	local 任务id = id .. "_9001_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999)
	随机序列 = 随机序列 + 1
	local 地图范围 = {
		1091,
		1506,
		1193,
		1110,
		1514
	}
	local 地图 = 地图范围[取随机数(1, #地图范围)]
	任务数据[任务id] = {
		类型 = 9001,
		结束 = 1200,
		领取人id = id,
		id = 任务id,
		起始 = os.time(),
		玩家id = {},
		队伍组 = {},
		名称 = 名称,
		模型 = 模型,
		地图编号 = 地图,
		地图名称 = 取地图名称(地图)
	}

	玩家数据[id].角色:添加任务(任务id)
	添加最后对话(id, format("烦请少侠去#P%s#做场法事，超度那些游荡在三界边缘的孤魂亡灵，我已对你们施展了法术，可逼退他们的怨念，这一路将不会有我的同类来骚扰你们了。", 任务数据[任务id].地图名称))
	快捷给道具(id, "牵魂香", 1, nil, nil, 1)
end

function 任务处理类:添加鬼王任务(id)
	if 玩家数据[id].队伍 == 0 or 玩家数据[id].队长 == false then
		常规提示(id, "#Y/该任务必须组队完成且由队长领取")

		return
	elseif 取队伍最低等级(玩家数据[id].队伍, 99) then
		常规提示(id, "#Y/等级小于99级的玩家无法领取此任务")

		return
	elseif 取队伍任务(玩家数据[id].队伍, 9000) then
		常规提示(id, "#Y/队伍中已有队员领取过此任务了")

		return
	elseif 活动次数查询(id, "鬼王任务") == false then
		return
	end

	local 任务id = id .. "_9000_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999)
	随机序列 = 随机序列 + 1
	local 地图范围 = {
		1111,
		1514,
		1174,
		1210,
		1201,
		1118,
		1129,
		1876,
		1229,
		1228,
		1258,
		1203
	}
	local 地图 = 地图范围[取随机数(1, #地图范围)]
	local 随机参数 = ygsj()
	local 模型 = "吸血鬼"

	if 随机参数 <= 20 then
		模型 = "鬼将"
	elseif 随机参数 <= 40 then
		模型 = "夜罗刹"
	elseif 随机参数 <= 60 then
		模型 = "炎魔神"
	elseif 随机参数 <= 80 then
		模型 = "幽灵"
	end

	local 时辰库 = {
		"子",
		"丑",
		"寅",
		"卯",
		"辰",
		"巳",
		"午",
		"未",
		"申",
		"酉",
		"戌",
		"亥"
	}
	local 时刻库 = {
		"一",
		"二",
		"三",
		"四",
		"五",
		"六",
		"七",
		"八"
	}
	local 鬼名库 = {
		"恶目鬼王",
		"啖血鬼王",
		"啖精气鬼王",
		"啖胎卵鬼王",
		"行病鬼王",
		"摄毒鬼王",
		"慈心鬼王",
		"福利鬼王",
		"大爱敬鬼王"
	}
	local 鬼王类型 = 鬼名库[取随机数(1, #鬼名库)]
	local 名称 = 时辰库[取随机数(1, #时辰库)] .. "时" .. 时刻库[取随机数(1, #时刻库)] .. "刻" .. 鬼王类型
	local xy = 地图处理类.地图坐标[地图]:取随机点()
	local 临时下限 = {
		x = xy.x - 50,
		y = xy.y - 50
	}

	if 临时下限.x <= 0 then
		临时下限.x = 1
	end

	if 临时下限.y <= 0 then
		临时下限.y = 1
	end

	local 临时上限 = {
		x = xy.x + 50,
		y = xy.y + 50
	}
	local 显示xy = {
		x = 取随机数(临时下限.x, 临时上限.x),
		y = 取随机数(临时下限.y, 临时上限.y)
	}
	local x临时人物队伍 = {}

	if 玩家数据[id].队伍 ~= nil and 玩家数据[id].队伍 ~= 0 then
		for i = 1, #队伍数据[玩家数据[id].队伍].成员数据 do
			if 队伍数据[玩家数据[id].队伍].成员数据[i] ~= nil and 队伍处理类:取是否助战(玩家数据[id].队伍, i) == 0 then
				x临时人物队伍[#x临时人物队伍 + 1] = 队伍数据[玩家数据[id].队伍].成员数据[i]
			end
		end
	end

	任务数据[任务id] = {
		结束 = 3600,
		类型 = 9000,
		领取人id = x临时人物队伍,
		id = 任务id,
		起始 = os.time(),
		玩家id = {},
		队伍组 = {},
		名称 = 名称,
		模型 = 模型,
		x = xy.x,
		y = xy.y,
		显示x = 显示xy.x,
		显示y = 显示xy.y,
		地图编号 = 地图,
		地图名称 = 取地图名称(地图),
		鬼王类型 = 鬼王类型
	}

	地图处理类:添加单位(任务id)

	local 队伍id = 玩家数据[id].队伍

	for n = 1, #队伍数据[队伍id].成员数据 do
		if 队伍处理类:取是否助战(玩家数据[id].队伍, n) == 0 then
			local 临时id = 队伍数据[队伍id].成员数据[n]
			任务数据[任务id].队伍组[#任务数据[任务id].队伍组 + 1] = 临时id

			if 玩家数据[临时id].角色.数据.鬼王次数 == nil then
				玩家数据[临时id].角色.数据.鬼王次数 = 1
			end

			if 玩家数据[临时id].角色.数据.鬼王次数 > 10 then
				玩家数据[临时id].角色.数据.鬼王次数 = 1
			end

			玩家数据[临时id].角色:添加任务(任务id)
			发送数据(玩家数据[临时id].连接id, 1501, {
				名称 = "黑无常",
				模型 = "黑无常",
				对话 = format("我刚得到消息，#Y/%s#W/在#G/%s(%s,%s)#W/附近出现过，速去将其降服。", 任务数据[任务id].名称, 任务数据[任务id].地图名称, 任务数据[任务id].显示x, 任务数据[任务id].显示y)
			})
		end
	end

	return true
end

function 任务处理类:添加抓鬼任务(id)
	if 玩家数据[id].队伍 == 0 or 玩家数据[id].队长 == false then
		常规提示(id, "#Y/该任务必须组队完成且由队长领取")

		return
	elseif 取队伍最低等级(玩家数据[id].队伍, 10) then
		常规提示(id, "#Y/等级小于10级的玩家无法领取此任务")

		return
	elseif 取队伍任务(玩家数据[id].队伍, 8) then
		常规提示(id, "#Y/队伍中已有队员领取过此任务了")

		return
	elseif 活动次数查询(id, "抓鬼任务") == false then
		return
	end

	local 任务id = id .. "_8_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999)
	随机序列 = 随机序列 + 1
	local 地图范围 = {
		1501,
		1070,
		1193,
		1173,
		1146,
		1140,
		1040,
		1226,
		1142
	}
	local 地图 = 地图范围[取随机数(1, #地图范围)]
	local 随机参数 = ygsj()
	local 模型 = "僵尸"

	if 随机参数 <= 20 then
		模型 = "野鬼"
	elseif 随机参数 <= 40 then
		模型 = "牛头"
	elseif 随机参数 <= 60 then
		模型 = "马面"
	elseif 随机参数 <= 80 then
		模型 = "骷髅怪"
	end

	local 时辰库 = {
		"子",
		"丑",
		"寅",
		"卯",
		"辰",
		"巳",
		"午",
		"未",
		"申",
		"酉",
		"戌",
		"亥"
	}
	local 时刻库 = {
		"一",
		"二",
		"三",
		"四",
		"五",
		"六",
		"七",
		"八"
	}
	local 鬼名库 = {
		"诌鬼",
		"假鬼",
		"奸鬼",
		"捣蛋鬼",
		"冒失鬼",
		"烟沙鬼",
		"挖渣鬼",
		"仔细鬼",
		"讨吃鬼",
		"醉死鬼",
		"抠掏鬼",
		"伶俐鬼",
		"急突鬼",
		"丢谎鬼",
		"乜斜鬼",
		"撩桥鬼",
		"饿鬼",
		"色鬼",
		"穷鬼",
		"刻山鬼",
		"吸血鬼",
		"惊鸿鬼",
		"清明鬼"
	}
	local 名称 = 时辰库[取随机数(1, #时辰库)] .. "时" .. 时刻库[取随机数(1, #时刻库)] .. "刻" .. 鬼名库[取随机数(1, #鬼名库)]
	local xy = 地图处理类.地图坐标[地图]:取随机点()
	local 临时下限 = {
		x = xy.x - 50,
		y = xy.y - 50
	}

	if 临时下限.x <= 0 then
		临时下限.x = 1
	end

	if 临时下限.y <= 0 then
		临时下限.y = 1
	end

	local 临时上限 = {
		x = xy.x + 50,
		y = xy.y + 50
	}
	local 显示xy = {
		x = 取随机数(临时下限.x, 临时上限.x),
		y = 取随机数(临时下限.y, 临时上限.y)
	}
	local x临时人物队伍 = {}

	if 玩家数据[id].队伍 ~= nil and 玩家数据[id].队伍 ~= 0 then
		for i = 1, #队伍数据[玩家数据[id].队伍].成员数据 do
			if 队伍数据[玩家数据[id].队伍].成员数据[i] ~= nil then
				x临时人物队伍[#x临时人物队伍 + 1] = 队伍数据[玩家数据[id].队伍].成员数据[i]
			end
		end
	end

	任务数据[任务id] = {
		结束 = 3600,
		类型 = 8,
		领取人id = x临时人物队伍,
		id = 任务id,
		起始 = os.time(),
		玩家id = {},
		队伍组 = {},
		名称 = 名称,
		模型 = 模型,
		x = xy.x,
		y = xy.y,
		显示x = 显示xy.x,
		显示y = 显示xy.y,
		地图编号 = 地图,
		地图名称 = 取地图名称(地图)
	}

	地图处理类:添加单位(任务id)

	local 队伍id = 玩家数据[id].队伍

	for n = 1, #队伍数据[队伍id].成员数据 do
		local 临时id = 队伍数据[队伍id].成员数据[n]
		任务数据[任务id].队伍组[#任务数据[任务id].队伍组 + 1] = 临时id

		if 玩家数据[临时id].角色.数据.捉鬼次数 == nil then
			玩家数据[临时id].角色.数据.捉鬼次数 = 1
		end

		if 玩家数据[临时id].角色.数据.捉鬼次数 > 10 then
			玩家数据[临时id].角色.数据.捉鬼次数 = 1
		end

		玩家数据[临时id].角色:添加任务(任务id)

		if 捉鬼数据[临时id] == nil then
			捉鬼数据[临时id] = 1
		end

		发送数据(玩家数据[临时id].连接id, 1501, {
			名称 = "钟馗",
			模型 = "男人_钟馗",
			对话 = format("听说近日有#Y/%s#W/正在#G/%s(%s,%s)#W/处作恶，请立即前去降服。", 任务数据[任务id].名称, 任务数据[任务id].地图名称, 任务数据[任务id].显示x, 任务数据[任务id].显示y)
		})
	end

	return true
end

function 任务处理类:设置大雁塔怪(id)
	local 地图范围 = {
		1004,
		1005,
		1006,
		1007,
		1008,
		1090
	}
	local x待发送数据 = {}

	for i = 1, #地图范围 do
		local 临时数量 = 取随机数(30, 50)
		local 地图 = 地图范围[i]
		x待发送数据[地图] = {}

		for n = 1, 临时数量 do
			local 任务id = 地图 .. "_103_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999) .. "_" .. n
			随机序列 = 随机序列 + 1
			local xy = 地图处理类.地图坐标[地图]:取随机点()
			local 模型范围 = 取明雷(地图)
			local 模型 = 模型范围[取随机数(1, #模型范围)]
			任务数据[任务id] = {
				玩家id = 0,
				行走开关 = true,
				结束 = 600,
				事件 = "明雷",
				类型 = 103,
				id = 任务id,
				起始 = os.time(),
				队伍组 = {},
				名称 = 模型,
				模型 = 模型,
				等级 = 取随机数(1, 140),
				x = xy.x,
				y = xy.y,
				地图编号 = 地图,
				地图名称 = 取地图名称(地图)
			}

			table.insert(x待发送数据[地图], 地图处理类:批量添加单位(任务id))
		end
	end

	for i = 1, #地图范围 do
		local 地图编号 = 地图范围[i]

		for n, v in pairs(地图处理类.地图玩家[地图编号]) do
			if 地图处理类:取同一地图(地图编号, id, n, 1) then
				发送数据(玩家数据[n].连接id, 1021, x待发送数据[地图编号])
			end
		end
	end

	x待发送数据 = nil
end

function 任务处理类:设置建邺东海小活动(id)
	local 地图范围 = {
		1501,
		1506
	}
	local x待发送数据 = {}

	for i = 1, #地图范围 do
		local 临时数量 = 取随机数(10, 20)
		local 地图 = 地图范围[i]
		x待发送数据[地图] = {}

		for n = 1, 临时数量 do
			local 任务id = 地图 .. "_127_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999) .. "_" .. n
			随机序列 = 随机序列 + 1
			local xy = 地图处理类.地图坐标[地图]:取随机点()
			local 模型范围 = {
				"银两",
				"食物",
				"摄妖香",
				"药品",
				"海星",
				"海毛虫",
				"大海龟",
				"巨蛙",
				"章鱼"
			}
			local 模型 = 模型范围[取随机数(1, #模型范围)]
			local x称谓 = nil

			if 模型 == "海星" or 模型 == "海毛虫" or 模型 == "大海龟" or 模型 == "巨蛙" or 模型 == "章鱼" then
				x称谓 = "宝宝"
			end

			任务数据[任务id] = {
				玩家id = 0,
				行走开关 = true,
				结束 = 600,
				事件 = "明雷活动",
				类型 = 127,
				id = 任务id,
				起始 = os.time(),
				队伍组 = {},
				名称 = 模型,
				模型 = 模型,
				等级 = 取随机数(1, 140),
				称谓 = x称谓,
				x = xy.x,
				y = xy.y,
				地图编号 = 地图,
				地图名称 = 取地图名称(地图)
			}

			table.insert(x待发送数据[地图], 地图处理类:批量添加单位(任务id))
		end
	end

	for i = 1, #地图范围 do
		local 地图编号 = 地图范围[i]

		for n, v in pairs(地图处理类.地图玩家[地图编号]) do
			if 地图处理类:取同一地图(地图编号, id, n, 1) then
				发送数据(玩家数据[n].连接id, 1021, x待发送数据[地图编号])
			end
		end
	end

	x待发送数据 = nil
end

function 任务处理类:刷新封妖任务()
	local 临时数量 = 取随机数(10, 16)
	local 地图范围 = {
		1193,
		1110,
		1173,
		1092,
		1091,
		1174,
		1210
	}
	local 地图 = 地图范围[ygsj(#地图范围)]
	local 封妖等级 = {
		[1193.0] = 55,
		[1173.0] = 55,
		[1092.0] = 55,
		[1091.0] = 55,
		[1174.0] = 55,
		[1210.0] = 55,
		[1110.0] = 55
	}
	local dtmc = ""

	for i = 1, #地图范围 do
		for n = 1, 临时数量 do
			local 任务id = "_101_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999)
			随机序列 = 随机序列 + 1
			local 模型 = "黑山老妖"
			local xy = 地图处理类.地图坐标[地图]:取随机点()

			if ygsj() <= 50 then
				模型 = "地狱战神"
			end

			结束时间 = 1800
			任务数据[任务id] = {
				名称 = "远古魔王",
				类型 = 101,
				id = 任务id,
				起始 = os.time(),
				结束 = 结束时间,
				玩家id = id,
				队伍组 = {},
				模型 = 模型,
				等级 = 封妖等级[地图范围[i]],
				x = xy.x,
				y = xy.y,
				地图编号 = 地图范围[i],
				地图名称 = 取地图名称(地图范围[i])
			}

			地图处理类:添加单位(任务id)
		end

		if i == 1 then
			dtmc = 取地图名称(地图范围[i])
		else
			dtmc = dtmc .. "、" .. 取地图名称(地图范围[i])
		end
	end

	广播消息({
		频道 = "xt",
		内容 = format("#P(天降横祸)#W一群妖怪家的房子被突如其来的天外陨石撞塌，现在无家可归的妖怪们正在#Y/%s#w/寻衅闹事，各路英雄赶快前往平乱啊！#35", dtmc)
	})
end

function 任务处理类:设置封妖任务(id)
	local 临时数量 = 取随机数(10, 16)

	玩家数据[id].角色:添加储备(临时数量 * 10000, "挖宝放妖")
	常规提示(id, "#Y/你不慎挖塌了妖怪家的房子，却意外的发现了#R/" .. 数字转简(临时数量 * 10000) .. "#Y/点储备金")

	local 地图范围 = {
		1193,
		1110,
		1173,
		1092,
		1091,
		1174,
		1210,
		1506,
		1514,
		1876
	}
	local 地图 = 地图范围[ygsj(#地图范围)]
	local 封妖等级 = 30

	for n = 1, 临时数量 do
		local 任务id = id .. "_101_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999)
		随机序列 = 随机序列 + 1
		local 模型 = "黑山老妖"
		local xy = 地图处理类.地图坐标[地图]:取随机点()

		if ygsj() <= 50 then
			模型 = "地狱战神"
		end

		结束时间 = 1800
		任务数据[任务id] = {
			名称 = "远古魔王",
			等级 = 30,
			类型 = 101,
			id = 任务id,
			起始 = os.time(),
			结束 = 结束时间,
			玩家id = id,
			队伍组 = {},
			模型 = 模型,
			x = xy.x,
			y = xy.y,
			地图编号 = 地图,
			地图名称 = 取地图名称(地图)
		}

		地图处理类:添加单位(任务id)
	end

	广播消息({
		频道 = "xt",
		内容 = format("#Y/%s#W/在挖宝时不慎挖塌了妖怪家的房子，现在一群无家可归的妖怪正在#Y/%s#w/寻衅闹事，各路英雄赶快前往平乱啊！#35", 玩家数据[id].角色.数据.名称, 取地图名称(地图))
	})
end

function 任务处理类:完成封妖任务(任务id, id组)
	if 任务数据[任务id] == nil then
		return
	end

	local 等级 = 任务数据[任务id].等级

	地图处理类:删除单位(任务数据[任务id].地图编号, 任务数据[任务id].单位编号)

	任务数据[任务id] = nil
	local 经验 = 等级 * 200 * 2
	local 银子 = 等级 * 200 * 2

	for n = 1, #id组 do
		local id = id组[n]

		if 队伍处理类:取是否助战(玩家数据[id].队伍, n) == 0 then
			if 掉率模式 == 1 then
				通用给奖励(id, {
					妖魔积分 = 1,
					活跃度 = 1,
					经验 = {
						600,
						800
					},
					银子 = {
						150,
						300
					}
				}, "封妖战斗")
			elseif 添加活动次数(id, "封妖战斗") then
				if 妖魔积分[id] == nil then
					妖魔积分[id] = {
						总计 = 0,
						当前 = 0,
						使用 = 0
					}
				end

				妖魔积分[id].当前 = 妖魔积分[id].当前 + 1
				妖魔积分[id].总计 = 妖魔积分[id].总计 + 1

				常规提示(id, "#Y/你获得了1点妖魔积分\n(#G可用于兑换和幸运转盘抽奖#)")
				玩家数据[id].角色:添加经验(经验, "封妖战斗", 1)
				玩家数据[id].角色:添加银子(银子, "封妖战斗", 1)

				活跃数据[id].活跃度 = 活跃数据[id].活跃度 + 2
				玩家数据[id].角色.数据.累积活跃.当前积分 = 玩家数据[id].角色.数据.累积活跃.当前积分 + 2

				常规提示(id, "#Y/你获得了2点活跃度\n(#G用于领取奖励和签到#)")
				召唤兽添加经验(math.floor(经验 * 0.8), id, "封妖战斗")

				奖励次数[id] = 取奖励次数(id)

				for i = 1, 奖励次数[id] do
					local 通知开关 = true
					local 奖励参数 = ygsj(150)

					if 奖励参数 <= 5 then
						奖励名称[id] = 快捷给道具(id, "坐骑内丹", 1)
					elseif 奖励参数 <= 20 then
						通知开关 = false
						奖励名称[id] = 快捷给道具(id, "超级金柳露", qsj(2, 5))
					elseif 奖励参数 <= 30 then
						奖励名称[id] = 快捷给道具(id, "清灵净瓶", 1)
					elseif 奖励参数 <= 50 then
						奖励名称[id] = 快捷给道具(id, "五宝", 1)
					elseif 奖励参数 <= 70 then
						通知开关 = false
						奖励名称[id] = 快捷给道具(id, "吸附石", 1)
					elseif 奖励参数 <= 90 then
						通知开关 = false
						奖励名称[id] = 快捷给道具(id, "海马", 3)
					elseif 奖励参数 <= 100 then
						通知开关 = false
						奖励名称[id] = 快捷给道具(id, "金银锦盒", 5)
					else
						通知开关 = false
					end

					广播消息({
						频道 = "xt",
						内容 = format("#S(封妖任务)#R/%s#Y完成封妖任务中表现优异，意外发现了妖怪遗留下的#R%s", 玩家数据[id].角色.数据.名称, 奖励名称[id])
					})

					if ygsj() <= 2 then
						奖励名称[id] = 快捷给道具(id, "百炼精铁", 取随机数(9, 11))

						广播消息({
							频道 = "xt",
							内容 = format("#S(封妖任务)#R/%s#Y完成封妖任务中表现优异，意外发现了妖怪遗留下的#G90-110级书铁", 玩家数据[id].角色.数据.名称, 奖励名称[id])
						})
					end
				end
			end
		end
	end
end

function 任务处理类:完成宝图任务(任务id)
	local 临时金钱 = 取随机数(3000, 5000)
	local id = 任务数据[任务id].玩家id

	if 添加活动次数(id, "宝图任务") == false then
		return
	end

	玩家数据[id].角色:添加银子(临时金钱, "完成宝图任务", 1)

	local 获得宝图 = 取随机数(1, 10000)

	if 取随机数(1, 10000) <= qz1(玩家数据[id].角色.数据.等级 / 300 * 10000) or 玩家数据[id].角色.数据.宝图保底 == 宝图保底 - 1 then
		玩家数据[id].角色.数据.宝图保底 = 0
		奖励名称[id] = 快捷给道具(id, "藏宝图", 1)

		if 获得宝图 <= 3000 then
			奖励名称[id] = 快捷给道具(id, "藏宝图", 1)

			常规提示(id, "恭喜你额外获得一张藏宝图")
		end

		if 玩家数据[id].角色.数据.门派 == "大唐官府" and 取随机数(1, 10000) <= 3000 then
			奖励名称[id] = 快捷给道具(id, "藏宝图", 1)

			常规提示(id, "【#R大唐官府#Y】门派额外奖励一张藏宝图")
		end
	else
		玩家数据[id].角色.数据.宝图保底 = (玩家数据[id].角色.数据.宝图保底 or 0) + 1
	end

	地图处理类:删除单位(任务数据[任务id].地图编号, 任务数据[任务id].单位编号)
	玩家数据[id].角色:取消任务(任务id)

	任务数据[任务id] = nil
end

function 任务处理类:完成门派任务(id, 类型, 双倍)
	local 任务id = 玩家数据[id].角色:取任务(111)

	if 任务数据[任务id] == nil or 任务数据[任务id].分类 ~= 类型 then
		常规提示(id, "#Y/你没有这样的任务")

		return
	end

	local 银子倍率 = 1
	local 经验倍率 = 1

	if 类型 == 4 then
		银子倍率 = 银子倍率 + 1
	end

	if 双倍 ~= nil then
		经验倍率 = 经验倍率 + 1
		银子倍率 = 银子倍率 + 1
	end

	if 师门数据[id] == nil then
		师门数据[id] = 0
	end

	if 师门数据[id] <= 60 then
		经验倍率 = 经验倍率 + 0.5
		银子倍率 = 银子倍率 + 0.5
		师门数据[id] = 师门数据[id] + 1

		if 师门数据[id] % 20 == 0 then
			经验倍率 = 经验倍率 + 1
			银子倍率 = 银子倍率 + 1

			添加门贡(id, 师门门贡 * 10)
		end
	end

	通用给奖励(id, {
		活跃度 = 1,
		经验 = {
			250 * (1 + 玩家数据[id].角色.数据.师门次数 * 0.1) * 经验倍率,
			300 * (1 + 玩家数据[id].角色.数据.师门次数 * 0.1) * 经验倍率
		},
		银子 = {
			100 * (1 + 玩家数据[id].角色.数据.师门次数 * 0.1) * 银子倍率,
			150 * (1 + 玩家数据[id].角色.数据.师门次数 * 0.1) * 银子倍率
		},
		储备 = {
			200 * (1 + 玩家数据[id].角色.数据.师门次数 * 0.1) * 银子倍率,
			250 * (1 + 玩家数据[id].角色.数据.师门次数 * 0.1) * 银子倍率
		},
		门贡 = 师门门贡
	}, "师门任务", nil, 玩家数据[id].角色.数据.师门次数)

	if 玩家数据[id].角色:取任务(402) ~= 0 and 任务数据[玩家数据[id].角色:取任务(402)].进程 == 3 then
		任务数据[玩家数据[id].角色:取任务(402)].进程 = 4

		玩家数据[id].角色:刷新任务跟踪()
	end

	玩家数据[id].角色:取消任务(任务id)

	任务数据[任务id] = nil

	if 成就数据[id].师门 == nil then
		成就数据[id].师门 = 0
	end

	成就数据[id].师门 = 成就数据[id].师门 + 1

	if 成就数据[id].师门 == 1 then
		local 成就提示 = "首席小弟子"
		local 成就提示1 = "完成1次了师门"

		发送数据(玩家数据[id].连接id, 149, {
			内容 = 成就提示,
			内容1 = 成就提示1
		})
	elseif 成就数据[id].师门 == 1000 then
		local 成就提示 = "钟馗小帮手"
		local 成就提示1 = "完成1000次了师门"
		成就数据[id].成就点 = 成就数据[id].成就点 + 1

		常规提示(id, "#Y/恭喜你获得了1点成就")
		发送数据(玩家数据[id].连接id, 149, {
			内容 = 成就提示,
			内容1 = 成就提示1
		})
		玩家数据[id].角色:添加称谓(id, "首席小弟子")
	end
end

function 任务处理类:一键师门(id)
	if 玩家数据[id].角色.数据.师门次数 == nil then
		玩家数据[id].角色.数据.师门次数 = 1
	end

	local 银子倍率 = 1
	local 经验倍率 = 1

	if 师门数据[id] == nil then
		师门数据[id] = 0
	end

	if 师门数据[id] <= 60 then
		经验倍率 = 经验倍率 + 0.5
		银子倍率 = 银子倍率 + 0.5
		师门数据[id] = 师门数据[id] + 1

		if 师门数据[id] % 20 == 0 then
			经验倍率 = 经验倍率 + 1
			银子倍率 = 银子倍率 + 1
		end
	end

	通用给奖励(id, {
		活跃度 = 1,
		经验 = {
			250 * (1 + 玩家数据[id].角色.数据.师门次数 * 0.1) * 经验倍率,
			300 * (1 + 玩家数据[id].角色.数据.师门次数 * 0.1) * 经验倍率
		},
		银子 = {
			100 * (1 + 玩家数据[id].角色.数据.师门次数 * 0.1) * 银子倍率,
			150 * (1 + 玩家数据[id].角色.数据.师门次数 * 0.1) * 银子倍率
		},
		储备 = {
			200 * (1 + 玩家数据[id].角色.数据.师门次数 * 0.1) * 银子倍率,
			250 * (1 + 玩家数据[id].角色.数据.师门次数 * 0.1) * 银子倍率
		},
		门贡 = 师门门贡
	}, "师门任务", nil, 玩家数据[id].角色.数据.师门次数)

	if 玩家数据[id].角色.数据.师门次数 >= 10 then
		玩家数据[id].角色.数据.师门次数 = 0
	end

	if 师门数据[id] == 活动初始次数.师门任务 then
		添加活动次数(id, "自动师门")
	end

	玩家数据[id].角色.数据.师门次数 = 玩家数据[id].角色.数据.师门次数 + 1

	if 成就数据[id].师门 == nil then
		成就数据[id].师门 = 0
	end

	成就数据[id].师门 = 成就数据[id].师门 + 1

	if 成就数据[id].师门 == 1 then
		local 成就提示 = "首席小弟子"
		local 成就提示1 = "完成1次了师门"

		发送数据(玩家数据[id].连接id, 149, {
			内容 = 成就提示,
			内容1 = 成就提示1
		})
	elseif 成就数据[id].师门 == 1000 then
		local 成就提示 = "钟馗小帮手"
		local 成就提示1 = "完成1000次了师门"
		成就数据[id].成就点 = 成就数据[id].成就点 + 1

		常规提示(id, "#Y/恭喜你获得了1点成就")
		发送数据(玩家数据[id].连接id, 149, {
			内容 = 成就提示,
			内容1 = 成就提示1
		})
		玩家数据[id].角色:添加称谓(id, "首席小弟子")
	end
end

function 任务处理类:一键抓鬼(id)
	local 等级 = 取队伍平均等级(玩家数据[id].队伍, id)
	local 奖励影响 = 1

	for n = 1, #队伍数据[玩家数据[id].队伍].成员数据 do
		if 队伍处理类:取是否助战(玩家数据[id].队伍, n) == 0 then
			local 当前id = 队伍数据[玩家数据[id].队伍].成员数据[n]

			if 添加活动次数(当前id, "自动捉鬼") == false then
				return
			end

			if 玩家数据[当前id].角色.数据.捉鬼次数 == nil then
				玩家数据[当前id].角色.数据.捉鬼次数 = 1
			end

			玩家数据[当前id].角色:取消任务(self.任务id)
			通用给奖励(当前id, {
				活跃度 = 1,
				经验 = {
					250 * (0.5 + 玩家数据[当前id].角色.数据.捉鬼次数 * 0.5),
					300 * (0.5 + 玩家数据[当前id].角色.数据.捉鬼次数 * 0.5)
				},
				银子 = {
					100 * (0.7 + 玩家数据[当前id].角色.数据.捉鬼次数 * 0.3),
					150 * (0.7 + 玩家数据[当前id].角色.数据.捉鬼次数 * 0.3)
				},
				储备 = {
					50 * (0.7 + 玩家数据[当前id].角色.数据.捉鬼次数 * 0.3),
					100 * (0.7 + 玩家数据[当前id].角色.数据.捉鬼次数 * 0.3)
				}
			}, "捉鬼", nil, "不判断次数")

			奖励次数[当前id] = 取奖励次数(当前id)

			for i = 1, 奖励次数[当前id] do
				local 通知开关 = true
				local 特殊奖励 = 0

				if 玩家数据[当前id].角色.数据.捉鬼次数 == 10 then
					快捷给道具(当前id, "魔兽残卷", 1)

					if ygsj() <= 2 then
						特殊奖励 = 特殊奖励 + 1
					end
				end

				if 取随机数(1, 5000) <= 1 then
					特殊奖励 = 特殊奖励 + 1
				end

				if 特殊奖励 > 0 then
					for i = 1, 特殊奖励 do
						if ygsj() <= 50 then
							奖励名称[当前id or 数字当前id] = 快捷给道具(当前id or 数字当前id, "资质丸", 1)
						else
							奖励名称[当前id or 数字当前id] = 快捷给道具(当前id or 数字当前id, "属性石", 1)
						end

						广播消息({
							频道 = "xt",
							内容 = format("#S(捉鬼任务)#R/%s#Y完成抓鬼任务中表现优异，因此获得了钟馗赠送的#G/%s", 玩家数据[当前id].角色.数据.名称, 奖励名称[当前id or 数字当前id])
						})
					end
				end

				if 通知开关 == true then
				end
			end

			常规提示(当前id, "#Y/(一轮10次)完成捉鬼轮次【第#R" .. 玩家数据[当前id].角色.数据.捉鬼次数 .. "#Y次】")

			玩家数据[当前id].角色.数据.捉鬼次数 = 玩家数据[当前id].角色.数据.捉鬼次数 + 1

			if 玩家数据[当前id].角色.数据.捉鬼次数 > 10 then
				玩家数据[当前id].角色.数据.捉鬼次数 = 1
			end

			if 成就数据[当前id].抓鬼 == nil then
				成就数据[当前id].抓鬼 = 0
			end

			成就数据[当前id].抓鬼 = 成就数据[当前id].抓鬼 + 1

			if 成就数据[当前id].抓鬼 == 1 then
				local 成就提示 = "钟馗小帮手"
				local 成就提示1 = "完成1次了抓鬼"

				发送数据(玩家数据[当前id].连接当前id, 149, {
					内容 = 成就提示,
					内容1 = 成就提示1
				})
			elseif 成就数据[当前id].抓鬼 == 1000 then
				local 成就提示 = "钟馗小帮手"
				local 成就提示1 = "完成1000次了抓鬼"
				成就数据[当前id].成就点 = 成就数据[当前id].成就点 + 1

				常规提示(当前id, "#Y/恭喜你获得了1点成就")
				发送数据(玩家数据[当前id].连接当前id, 149, {
					内容 = 成就提示,
					内容1 = 成就提示1
				})
				玩家数据[当前id].角色:添加称谓(当前id, "僵尸道长")
			end
		end
	end
end

function 任务处理类:一键官职(id)
	local 等级 = 玩家数据[id].角色.数据.等级
	local 经验 = qz(等级 * 40 * 4)
	local 银子 = qz(等级 * 30 * 2)

	玩家数据[id].角色:添加经验(经验 * 10, "官职")
	玩家数据[id].角色:添加银子(银子 * 10, "官职", 1)

	活跃数据[id].活跃度 = 活跃数据[id].活跃度 + 40
	玩家数据[id].角色.数据.累积活跃.当前积分 = 玩家数据[id].角色.数据.累积活跃.当前积分 + 40

	常规提示(id, "#Y/你获得了40点活跃度\n(#G用于领取奖励和签到#)")
	召唤兽添加经验(qz(经验 * 0.5), id, "官职", self.地图等级)

	if 妖魔积分[id] == nil then
		妖魔积分[id] = {
			总计 = 0,
			当前 = 0,
			使用 = 0
		}
	end

	妖魔积分[id].当前 = 妖魔积分[id].当前 + 20
	妖魔积分[id].总计 = 妖魔积分[id].总计 + 20

	常规提示(id, "#Y/你获得了20点妖魔积分\n(#G可用于兑换和幸运转盘抽奖#)")
	玩家数据[id].道具:给予道具(id, "上古锻造图策", {
		5,
		35
	})
	常规提示(id, "#Y/你获得了上古锻造图策")
	玩家数据[id].道具:给予道具(id, "炼妖石", {
		5,
		35
	})
	常规提示(id, "#Y/你获得了炼妖石")
	玩家数据[id].道具:给予书铁(id, {
		5,
		6
	}, "指南书")
	常规提示(id, "#Y你得到了#R50-60级装备指南书")
end

function 任务处理类:一键封妖(id)
	local 等级 = 玩家数据[id].角色.数据.等级
	local 经验 = qz(等级 * 400 * 4)
	local 银子 = qz(等级 * 400 * 2)

	玩家数据[id].角色:添加经验(经验 * 20, "封妖")
	玩家数据[id].角色:添加银子(银子 * 20, "封妖", 1)

	活跃数据[id].活跃度 = 活跃数据[id].活跃度 + 40
	玩家数据[id].角色.数据.累积活跃.当前积分 = 玩家数据[id].角色.数据.累积活跃.当前积分 + 40

	常规提示(id, "#Y/你获得了40点活跃度\n(#G用于领取奖励和签到#)")
	召唤兽添加经验(qz(经验 * 0.5), id, "官职", self.地图等级)

	if 妖魔积分[id] == nil then
		妖魔积分[id] = {
			总计 = 0,
			当前 = 0,
			使用 = 0
		}
	end

	妖魔积分[id].当前 = 妖魔积分[id].当前 + 20
	妖魔积分[id].总计 = 妖魔积分[id].总计 + 20

	玩家数据[id].道具:给予道具(id, "清灵净瓶", 1)
	玩家数据[id].道具:给予道具(id, "金柳露", 取随机数(1, 30))
	常规提示(id, "#Y/你获得了清灵净瓶")
	常规提示(id, "#Y/你获得了金柳露")

	奖励名称[id] = 取强化石()

	玩家数据[id].道具:给予道具(id, 名称, 取随机数(1, 10))
	常规提示(id, "#Y/你获得了" .. 名称)
	玩家数据[id].道具:给予道具(id, "海马", 取随机数(1, 5))
	玩家数据[id].道具:给予道具(id, "金银锦盒", 取随机数(1, 10))
	常规提示(id, "#Y/你获得了金银锦盒")
end

function 任务处理类:完成官职任务(id, 类型)
	local 任务id = 玩家数据[id].角色:取任务(110)

	if 任务数据[任务id] == nil or 任务数据[任务id].分类 ~= 类型 then
		常规提示(id, "#Y/你没有这样的任务")

		return
	end

	local 倍率 = 1
	local 等级 = 玩家数据[id].角色.数据.等级

	if 类型 == 5 then
		if 玩家数据[id].角色.数据.文功任务.答对 == 0 then
			倍率 = 0
		elseif 玩家数据[id].角色.数据.文功任务.答对 == 1 then
			倍率 = 0.6
		elseif 玩家数据[id].角色.数据.文功任务.答对 == 2 then
			倍率 = 1
		else
			倍率 = 1.6
		end
	end

	if 类型 == 4 then
		倍率 = 倍率 * 2
	end

	if 倍率 > 0 then
		通用给奖励(id, {
			活跃度 = 2,
			经验 = {
				800 * 倍率,
				1000 * 倍率
			},
			银子 = {
				150 * 倍率,
				200 * 倍率
			},
			储备 = {
				300 * 倍率,
				350 * 倍率
			}
		}, "官职任务")
	end

	if 玩家数据[id].角色.数据.官职次数 >= 10 and 倍率 > 0 then
		给妖魔积分(id, 10)

		local aa = "制造指南书"

		if ygsj() <= 1 then
			if ygsj() <= 50 then
				aa = "百炼精铁"
			end

			奖励名称[id] = 快捷给道具(id, aa, 取随机数(10, 12))

			广播消息({
				频道 = "xt",
				内容 = format("#S(官职任务)#R/%s#Y完成官职任务运气爆棚，#获得了#S李将军#Y奖励的#G%s", 玩家数据[id].角色.数据.名称, 奖励名称[id])
			})
		end

		aa = "制造指南书"

		if ygsj() <= 50 then
			aa = "百炼精铁"
		end

		快捷给道具(id, aa, qsj(math.max(qz(等级 / 10) - 5, 3), math.min(qz(等级 / 10) - 2, 9)))

		玩家数据[id].角色.数据.官职次数 = 0
	end

	if 类型 == 2 then
		地图处理类:删除单位(任务数据[任务id].地图编号, 任务数据[任务id].单位编号)
	end

	玩家数据[id].角色:取消任务(任务id)

	if 任务数据[任务id].文武 == "文" then
		添加文功(id, 官职任务奖励 * 倍率)
	else
		添加武勋(id, 官职任务奖励 * 倍率)
	end

	任务数据[任务id] = nil

	if 成就数据[id].官职 == nil then
		成就数据[id].官职 = 0
	end

	成就数据[id].官职 = 成就数据[id].官职 + 1

	if 成就数据[id].官职 == 1 then
		local 成就提示 = "省委书记"
		local 成就提示1 = "完成1次了官职"

		发送数据(玩家数据[id].连接id, 149, {
			内容 = 成就提示,
			内容1 = 成就提示1
		})
	elseif 成就数据[id].官职 == 1000 then
		local 成就提示 = "省委书记"
		local 成就提示1 = "完成1000次了官职"
		成就数据[id].成就点 = 成就数据[id].成就点 + 1

		常规提示(id, "#Y/恭喜你获得了1点成就")
		发送数据(玩家数据[id].连接id, 149, {
			内容 = 成就提示,
			内容1 = 成就提示1
		})
		玩家数据[id].角色:添加称谓(id, "当代清官")

		玩家数据[id].角色.数据.文功任务 = nil
	end
end

function 任务处理类:添加门派任务(id, 门派, 自动师门)
	if 门派师傅坐标[门派] == nil then
		添加最后对话(id, "尚未拜入门派、无法领取师门任务！")

		return
	end

	if 自动师门 ~= nil then
		玩家数据[id].最后对话 = {
			名称 = 门派师傅坐标[门派][4],
			模型 = 门派师傅坐标[门派][5] or 门派师傅坐标[门派][4]
		}
	end

	if 活动初始次数.师门任务 < (师门数据[id] or 0) then
		添加最后对话(id, "徒儿辛苦了，今天已经完成" .. 活动初始次数.师门任务 .. "次门派任务了，我觉得需要休息一下了#1")

		return
	elseif 玩家数据[id].角色.数据.等级 < 20 then
		添加最后对话(id, "领取师门任务需要等级达到20级方可领取，你还是先去努力练级吧#1")

		return
	elseif 玩家数据[id].角色:取任务(111) ~= 0 then
		添加最后对话(id, "为师先前不是已经给了你任务吗？你怎么还没有去完成呢？")

		return
	elseif 活动次数查询(id, "师门任务") == false then
		return
	end

	local 任务参数 = {
		1,
		80
	}
	local 等级 = 玩家数据[id].角色.数据.等级

	if 等级 >= 69 then
		任务参数 = {
			1,
			170
		}
	end

	local 任务类型 = 取随机数(任务参数[1], 任务参数[2])

	if 任务类型 <= 30 then
		任务类型 = 1
	elseif 任务类型 <= 50 then
		任务类型 = 2
	elseif 任务类型 <= 70 then
		任务类型 = 3
	elseif 任务类型 <= 80 then
		任务类型 = 4
	elseif 任务类型 <= 110 then
		任务类型 = 5
	elseif 任务类型 <= 140 then
		任务类型 = 6
	elseif 任务类型 <= 170 then
		任务类型 = 7
	end

	if 任务类型 == 5 and 取门派示威对象(门派) == nil then
		任务类型 = 取随机数(1, 2)
	end

	if 自动师门 ~= nil then
		if ygsj() <= 自动任务找人概率 then
			任务类型 = 1
		else
			任务类型 = 2
		end
	end

	local 任务id = id .. "_111_" .. os.time()
	任务数据[任务id] = {
		类型 = 111,
		结束 = 9999999,
		领取人id = {
			id
		},
		id = 任务id,
		起始 = os.time(),
		玩家id = id,
		队伍组 = {},
		分类 = 任务类型,
		门派师傅 = 玩家数据[id].最后对话.名称
	}

	if 任务类型 == 1 then
		local aa = 0

		while aa == 0 or 任务数据[任务id].人物 == 玩家数据[id].最后对话.名称 do
			local 序列 = 取随机数(1, #Q_随机人物)
			任务数据[任务id].人物 = Q_随机人物[序列].名称[取随机数(1, #Q_随机人物[序列].名称)]
			任务数据[任务id].地图编号 = Q_随机人物[序列].地图
			aa = aa + 1
		end

		添加最后对话(id, format("请帮我把这封送给#Y%s#W的%s，事出紧急，切勿在路上耽搁。", 取地图名称(任务数据[任务id].地图编号), 任务数据[任务id].人物))
	elseif 任务类型 == 2 then
		任务数据[任务id].巡逻 = 0

		添加最后对话(id, "近日有妖魔鬼怪在本门派捣乱，请你在本门内进行巡逻，将那些前来捣乱的妖魔鬼怪清除掉。")
	elseif 任务类型 == 3 then
		self:设置师门bb(id, 任务id)

		if 任务数据[任务id].要求 == nil then
			添加最后对话(id, format("既然你终日无所事事，为师也不能让你就此荒废下去。那就去给我捉一只#Y%s", 任务数据[任务id].bb))
		else
			添加最后对话(id, format("既然你终日无所事事，为师也不能让你就此荒废下去。那就去给我捉一只#R%s#W的#Y%s", 任务数据[任务id].要求, 任务数据[任务id].bb))
		end
	elseif 任务类型 == 4 then
		self:设置师门物品(id, 任务id)

		if 任务数据[任务id].品质 == nil then
			添加最后对话(id, format("门内物资紧缺，你前去寻找到#Y%s#W交给我吧。", 取装备详细说明(任务数据[任务id].物品)))
		else
			添加最后对话(id, format("门内物资紧缺，你前去寻找到#Y%s#W交给我吧。如果能找到品质达#R%s#W的，我会给你额外奖赏哟。", 取装备详细说明(任务数据[任务id].物品), 任务数据[任务id].品质))
		end
	elseif 任务类型 == 5 then
		local 临时对象 = 取门派示威对象(门派)
		任务数据[任务id].模型 = 临时对象.模型
		任务数据[任务id].名称 = 临时对象.名称
		任务数据[任务id].结束 = 3600

		if 临时对象.武器 ~= nil then
			任务数据[任务id].武器 = 临时对象.武器.名称
			任务数据[任务id].武器等级 = 临时对象.武器.级别限制
		end

		local 地图 = 取门派地图(玩家数据[临时对象.id].角色.数据.门派)
		地图 = 地图[1]
		local xy = 地图处理类.地图坐标[地图]:取随机点()
		任务数据[任务id].地图编号 = 地图
		任务数据[任务id].地图名称 = 取地图名称(地图)
		任务数据[任务id].门派 = 玩家数据[临时对象.id].角色.数据.门派
		任务数据[任务id].x = xy.x
		任务数据[任务id].y = xy.y

		地图处理类:添加单位(任务id)
		添加最后对话(id, format("#Y%s的#R%s#W近日十分嚣张，不断来到本门派挑衅。你前去好好教训教训他，让他懂得为人要低调的道理。", 玩家数据[临时对象.id].角色.数据.门派, 任务数据[任务id].名称))
	elseif 任务类型 == 6 then
		local 人物 = Q_随机模型[取随机数(1, 5)]

		if 玩家数据[id].角色.数据.种族 == "仙" then
			人物 = Q_随机模型[取随机数(6, 10)]
		elseif 玩家数据[id].角色.数据.种族 == "魔" then
			人物 = Q_随机模型[取随机数(11, 15)]
		end

		local 地图范围 = {
			1070,
			1091,
			1514,
			1110,
			1174,
			1173
		}
		local 地图 = 地图范围[取随机数(1, #地图范围)]
		local xy = 地图处理类.地图坐标[地图]:取随机点()
		任务数据[任务id].模型 = 人物
		任务数据[任务id].名称 = "苦战中的同门"
		任务数据[任务id].地图编号 = 地图
		任务数据[任务id].地图名称 = 取地图名称(地图)
		任务数据[任务id].x = xy.x
		任务数据[任务id].y = xy.y

		地图处理类:添加单位(任务id)
		添加最后对话(id, format("方才收到本门弟子紧急求救信号，请你立即赶往#Y%s#W进行支援。", 任务数据[任务id].地图名称))

		任务数据[任务id].结束 = 3600
	elseif 任务类型 == 7 then
		local 种族 = 玩家数据[id].角色.数据.种族
		任务数据[任务id].名称 = Q_乾坤袋[种族][取随机数(1, #Q_乾坤袋[种族])]
		local 模型 = {
			"强盗",
			"山贼"
		}

		if 种族 == "魔" then
			模型 = {
				"幽灵",
				"吸血鬼"
			}
		elseif 种族 == "仙" then
			模型 = {
				"灵符女娲",
				"净瓶女娲"
			}
		end

		任务数据[任务id].模型 = 模型[取随机数(1, #模型)]
		local 地图范围 = {
			1070,
			1091,
			1514,
			1110,
			1174,
			1173
		}
		local 地图 = 地图范围[取随机数(1, #地图范围)]
		local xy = 地图处理类.地图坐标[地图]:取随机点()
		任务数据[任务id].地图编号 = 地图
		任务数据[任务id].地图名称 = 取地图名称(地图)
		任务数据[任务id].x = xy.x
		任务数据[任务id].y = xy.y
		任务数据[任务id].结束 = 3600

		地图处理类:添加单位(任务id)
		添加最后对话(id, format("近日有#Y%s在#R%s#W附近作乱，请你携带乾坤袋前去将其降服。", 任务数据[任务id].名称, 任务数据[任务id].地图名称))
	end

	玩家数据[id].角色.数据.师门次数 = 玩家数据[id].角色.数据.师门次数 + 1

	if 玩家数据[id].角色.数据.师门次数 == 10 and 取随机数(1, 250) >= 230 then
		发送数据(玩家数据[id].连接id, 1501, {
			对话 = "徒儿辛苦了，出门在外非常艰苦，为师特意为你准备了一件法宝，希望徒儿能够喜欢！",
			名称 = 玩家数据[id].最后对话.名称,
			模型 = 玩家数据[id].最后对话.模型,
			选项 = {
				"非常喜欢这法宝，谢谢！",
				"我并不需要这个法宝"
			}
		})
	end

	if 玩家数据[id].角色.数据.师门次数 > 10 then
		玩家数据[id].角色.数据.师门次数 = 1
	end

	玩家数据[id].角色:添加任务(任务id)

	return true
end

function 任务处理类:设置师门物品(id, 任务id)
	local 等级 = 玩家数据[id].角色.数据.等级
	local 临时等级 = 等级
	local 药品名称 = {}

	if ygsj() <= 50 then
		if 等级 <= 60 then
			药品名称 = {
				"四叶花",
				"紫丹罗",
				"佛手",
				"鬼切草",
				"女儿红"
			}
		elseif 等级 <= 90 then
			药品名称 = {
				"四叶花",
				"紫丹罗",
				"佛手",
				"鬼切草",
				"鹿茸",
				"仙狐涎",
				"地狱灵芝",
				"六道轮回",
				"紫石英",
				"烤鸭",
				"珍露酒",
				"佛跳墙",
				"臭豆腐",
				"翡翠豆腐",
				"豆斋果"
			}
		else
			药品名称 = {
				"豆斋果",
				"佛跳墙",
				"长寿面",
				"醉生梦死",
				"九转回魂丹",
				"蛇胆酒",
				"佛光舍利子",
				"金香玉",
				"小还丹",
				"蛇蝎美人",
				"风水混元丹",
				"千年保心丹",
				"定神香",
				"五龙丹",
				"十香返生丸"
			}
		end

		任务数据[任务id].物品 = 药品名称[取随机数(1, #药品名称)]

		if 等级 > 90 then
			local 临时品质 = 63

			if 等级 >= 120 then
				临时品质 = 96
			end

			if 等级 >= 140 then
				临时品质 = 129
			end

			任务数据[任务id].品质 = 临时品质
		end
	else
		local 临时限制 = {
			0,
			2
		}

		if 等级 <= 50 then
		elseif 等级 <= 70 then
			临时限制 = {
				2,
				4
			}
		elseif 等级 <= 100 then
			临时限制 = {
				3,
				5
			}
		elseif 等级 <= 130 then
			临时限制 = {
				5,
				7
			}
		else
			临时限制 = {
				6,
				8
			}
		end

		临时限制 = 取随机数(临时限制[1], 临时限制[2])
		local 物品名称 = 玩家数据[id].装备.打造物品[取随机数(1, 23)][临时限制 + 1]

		if type(物品名称) == "table" then
			物品名称 = 物品名称[取随机数(1, #物品名称)]
		end

		任务数据[任务id].物品 = 物品名称
	end
end

function 任务处理类:设置师门bb(id, 任务id)
	local 等级 = 玩家数据[id].角色.数据.等级
	local 临时等级 = 等级 - 20

	if 临时等级 > 85 then
		临时等级 = 85
	end

	local 临时等级1 = 等级 - 50

	if 临时等级1 < 1 then
		临时等级1 = 0
	end

	local 类型 = 取等级怪(取随机数(临时等级1, 临时等级))
	类型 = 取敌人信息(类型[取随机数(1, #类型)])
	类型 = 类型[2]
	local 要求 = {
		"武艺超群",
		"身强体壮",
		"法力无边",
		"身手敏捷",
		"刀枪不入"
	}
	local 要求1 = nil

	if 等级 >= 100 then
		要求1 = 要求[取随机数(1, #要求)]
	end

	任务数据[任务id].bb = 类型
	任务数据[任务id].要求 = 要求1
end

function 任务处理类:添加官职任务(id, 文武)
	if 玩家数据[id].角色.数据.官职间隔 ~= nil and os.time() - 玩家数据[id].角色.数据.官职间隔 <= 600 then
		发送数据(玩家数据[id].连接id, 1501, {
			名称 = "李将军",
			对话 = "由于你取消的任务次数过多，请等待十分钟后再来。",
			模型 = "男人_马副将"
		})

		return
	elseif 玩家数据[id].角色.数据.等级 < 30 then
		发送数据(玩家数据[id].连接id, 1501, {
			名称 = "李将军",
			对话 = "你连三十级都没有，怎么帮我？",
			模型 = "男人_马副将"
		})

		return
	elseif 玩家数据[id].角色:取任务(110) ~= 0 then
		发送数据(玩家数据[id].连接id, 1501, {
			名称 = "李将军",
			对话 = "你不是已经在我这里领取了任务嘛，怎么还不快完成呢？",
			模型 = "男人_马副将"
		})

		return
	elseif 活动次数查询(id, "官职任务") == false then
		return
	end

	local 任务类型 = 取随机数(1, 10)

	if 任务类型 <= 4 then
		任务类型 = 1

		if 文武 == "文" then
			任务类型 = 5
		end
	elseif 任务类型 <= 7 then
		任务类型 = 2
	elseif 任务类型 <= 9 then
		任务类型 = 3
	else
		任务类型 = 4
	end

	local 任务id = id .. "_110_" .. os.time()
	任务数据[任务id] = {
		类型 = 110,
		结束 = 3600,
		领取人id = {
			id
		},
		id = 任务id,
		起始 = os.time(),
		玩家id = id,
		队伍组 = {},
		分类 = 任务类型,
		文武 = 文武
	}

	发送数据(玩家数据[id].连接id, 39)

	if 任务类型 == 1 then
		local 地图范围 = {
			1001,
			1501,
			1092,
			1070,
			1040,
			1226,
			1208
		}
		local 地图 = 地图范围[取随机数(1, #地图范围)]
		local xy = 地图处理类.地图坐标[地图]:取随机点()
		任务数据[任务id].模型 = "赌徒"
		任务数据[任务id].名称 = "闹事的流氓"
		任务数据[任务id].地图编号 = 地图
		任务数据[任务id].地图名称 = 取地图名称(地图)
		任务数据[任务id].x = xy.x
		任务数据[任务id].y = xy.y
		任务数据[任务id].战斗次数 = 0

		地图处理类:添加单位(任务id)
		发送数据(玩家数据[id].连接id, 1501, {
			名称 = "李将军",
			模型 = "男人_马副将",
			对话 = format("目前有流氓正在#G/%s(%s,%s)#W/附近滋事，请你前去处理。", 任务数据[任务id].地图名称, 任务数据[任务id].x, 任务数据[任务id].y)
		})
	elseif 任务类型 == 2 then
		local 地图范围 = {
			1193,
			1110
		}
		local 地图 = 地图范围[取随机数(1, #地图范围)]
		local xy = 地图处理类.地图坐标[地图]:取随机点()
		任务数据[任务id].模型 = "护卫"
		任务数据[任务id].名称 = "军需官"
		任务数据[任务id].地图编号 = 地图
		任务数据[任务id].地图名称 = 取地图名称(地图)
		任务数据[任务id].x = xy.x
		任务数据[任务id].y = xy.y

		地图处理类:添加单位(任务id)
		发送数据(玩家数据[id].连接id, 1501, {
			名称 = "李将军",
			模型 = "男人_马副将",
			对话 = format("目前前线物资紧缺，请你将这批物资运输到#G/%s(%s,%s)#W/处，交给那里的军需官。为了保护物资的安全，请不要使用飞行道具。", 任务数据[任务id].地图名称, 任务数据[任务id].x, 任务数据[任务id].y)
		})
	elseif 任务类型 == 3 then
		任务数据[任务id].情报 = false

		发送数据(玩家数据[id].连接id, 1501, {
			名称 = "李将军",
			对话 = "根据探子来报，突厥正在谋划些什么，请你前往边境搜集突厥的情报。",
			模型 = "男人_马副将"
		})
	elseif 任务类型 == 4 then
		任务数据[任务id].物品 = 取官职任务物品(id)

		发送数据(玩家数据[id].连接id, 1501, {
			名称 = "李将军",
			模型 = "男人_马副将",
			对话 = format("前线打仗的军备不足，请你帮我搜寻#R/%s#W/给我。", 取装备详细说明(任务数据[任务id].物品))
		})
	elseif 任务类型 == 5 then
		local 序列 = 取随机数(1, #Q_随机人物)
		任务数据[任务id].人物 = Q_随机人物[序列].名称[取随机数(1, #Q_随机人物[序列].名称)]
		任务数据[任务id].地图编号 = Q_随机人物[序列].地图
		玩家数据[id].角色.数据.文功任务 = {
			题目 = 0,
			答对 = 0
		}

		添加最后对话(id, format("#Y%s#W的#Y%s#遇到了难题，请你前往帮忙解决一下。", 取地图名称(任务数据[任务id].地图编号), 任务数据[任务id].人物))
	end

	玩家数据[id].角色.数据.官职次数 = 玩家数据[id].角色.数据.官职次数 + 1

	玩家数据[id].角色:添加任务(任务id)
end

function 任务处理类:完成宠修任务(id, 任务id, 人物修炼)
	if 任务数据[任务id] == nil then
		return
	end

	local 次数 = 任务数据[任务id].次数
	local 积分 = 3
	local 额外 = 0
	积分 = 0
	local 除数 = 30

	if 任务数据[任务id].分类 == 11 then
		积分 = 1
		除数 = 60
	elseif 任务数据[任务id].分类 == 12 or 任务数据[任务id].分类 == 13 or 任务数据[任务id].分类 == 14 then
		积分 = 3
		额外 = 5

		if 任务数据[任务id].等级 == 7 then
			积分 = 4
			额外 = 10
		elseif 任务数据[任务id].等级 == 8 then
			积分 = 5
			额外 = 15
		elseif 任务数据[任务id].等级 == 9 then
			积分 = 6
			额外 = 15
			除数 = 25
		elseif 任务数据[任务id].等级 == 10 then
			积分 = 8
			额外 = 20
			除数 = 20
		end
	elseif 任务数据[任务id].分类 == 15 then
		积分 = 10
		额外 = 30
		除数 = 15
	else
		积分 = 6
		额外 = 20
		除数 = 20
	end

	任务数据[任务id].传说 = nil
	任务数据[任务id].物品 = nil
	任务数据[任务id].bb = nil
	任务数据[任务id].bb次数 = nil
	任务数据[任务id].积分 = 任务数据[任务id].积分 + 积分

	发送数据(玩家数据[id].连接id, 38, {
		内容 = "你获得了" .. 积分 .. "点任务积分"
	})

	local 宠修经验 = 1 + qz1(次数 / 除数 + 积分 * 1)

	if 人物修炼 ~= nil then
		玩家数据[id].角色:添加人物修炼经验(id, 宠修经验)
	else
		玩家数据[id].角色:添加bb修炼经验(id, 宠修经验)
	end

	if ygsj() <= qz1(5 + 额外 / 5) then
		奖励名称[id] = 快捷给道具(id, "修炼果", 1)
	end

	if ygsj() <= qz1(5 + 额外 / 5) then
		奖励名称[id] = 快捷给道具(id, "九转金丹", 1, 300)
	end

	if 任务数据[任务id].积分 >= 100 then
		if ygsj(1000) <= 3 then
			奖励名称[id] = 快捷给道具(id, "祥瑞坐骑礼包", 1)

			广播消息({
				频道 = "xt",
				内容 = format("#S(跑环任务)#R/%s#Y在跑环任务中运气爆棚，居然获得了马真人奖励的#G%s", 玩家数据[id].角色.数据.名称, 奖励名称[id])
			})
		end

		任务数据[任务id].积分 = 任务数据[任务id].积分 - 100

		添加仙玉(10000, 玩家数据[id].账号, id, "宠修任务")
		玩家数据[id].角色:添加银子(3000000, "宠修任务", 1)

		if ygsj() <= 50 then
			奖励名称[id] = 快捷给道具(id, "制造指南书", 取随机数(9, 12))
		else
			奖励名称[id] = 快捷给道具(id, "百炼精铁", 取随机数(9, 12))
		end

		广播消息({
			频道 = "xt",
			内容 = format("#S(跑环任务)#R/%s#Y在跑环任务中的积分达到了100，因此获得了马真人奖励的#G/%s", 玩家数据[id].角色.数据.名称, 奖励名称[id])
		})

		奖励名称[id] = 快捷给道具(id, "坐骑内丹", 取随机数(1, 2))

		广播消息({
			频道 = "xt",
			内容 = format("#S(跑环任务)#R/%s#Y在跑环任务中的积分达到了100，因此获得了马真人奖励的#G/%s", 玩家数据[id].角色.数据.名称, 奖励名称[id])
		})
		快捷给道具(id, "修炼果", 3)
		快捷给道具(id, "九转金丹", 3, 300)

		if 取随机数(1, 10000) <= 300 then
			for i = 1, 取随机数(1, 1) do
				if ygsj() <= 50 then
					奖励名称[id] = 快捷给道具(id, "资质丸", 1)
				else
					奖励名称[id] = 快捷给道具(id, "属性石", 1)
				end

				广播消息({
					频道 = "xt",
					内容 = format("#S(跑环任务)#R/%s#Y在跑环任务中的积分达到了100，因此获得了马真人奖励的#G/%s", 玩家数据[id].角色.数据.名称, 奖励名称[id])
				})
			end
		end
	end

	if 任务数据[任务id].次数 == 100 or 任务数据[任务id].次数 == 200 or 任务数据[任务id].次数 == 300 then
		if ygsj(1000) <= 5 * 任务数据[任务id].次数 / 100 then
			奖励名称[id] = 快捷给道具(id, "祥瑞坐骑礼包", 1)

			广播消息({
				频道 = "xt",
				内容 = format("#S(跑环任务)#R/%s#Y在跑环任务中运气爆棚，居然获得了马真人奖励的#G%s", 玩家数据[id].角色.数据.名称, 奖励名称[id])
			})
		end

		local aa = ygsj(4) + 11

		if 单机设置 then
			aa = 15
		end

		快捷给道具(id, "制造指南书", aa)

		奖励名称[id] = 快捷给道具(id, "百炼精铁", aa)

		添加仙玉(10000, 玩家数据[id].账号, id, "宠修任务")
		玩家数据[id].角色:添加银子(1000000 * 任务数据[任务id].次数 / 100, "宠修任务", 1)

		local bb = (ygsj(3) + 3) * 2
		奖励名称[id] = 快捷给道具(id, "元灵晶石", bb)
		奖励名称[id] = 快捷给道具(id, "灵饰指南书", bb)
		奖励名称[id] = 快捷给道具(id, "附魔宝珠", qz1(任务数据[任务id].次数 / 100 * 2))
		奖励名称[id] = 快捷给道具(id, "坐骑内丹", qz1(任务数据[任务id].次数 / 100 * 2))

		for i = 1, 1 do
			奖励名称[id] = 快捷给道具(id, "资质丸", 1)

			广播消息({
				频道 = "xt",
				内容 = format("#S(跑环任务)#R/%s#Y在跑环任务中运气爆棚，居然获得了马真人奖励的#G%s", 玩家数据[id].角色.数据.名称, 奖励名称[id])
			})
		end

		奖励名称[id] = 快捷给道具(id, "修炼果", 5)
		奖励名称[id] = 快捷给道具(id, "九转金丹", 5, 300)
		奖励名称[id] = 快捷给道具(id, "特效石碎片", 1)

		广播消息({
			频道 = "xt",
			内容 = format("#S(跑环任务)#R/%s#Y完成了百次跑环任务，获得了马真人奖励的#G%s#Y等豪华道具奖励", 玩家数据[id].角色.数据.名称, 奖励名称[id] .. "特效石碎片、" .. aa * 10 .. "级书铁一套、" .. bb * 10 .. "级灵饰书铁一套、坐骑内丹、附魔宝珠")
		})
		常规提示(id, "#Y恭喜你完成了" .. 任务数据[任务id].次数 .. "次跑环任务")

		if 任务数据[任务id].次数 == 300 then
			添加活动次数(id, "跑环")

			local 任务id = 玩家数据[id].角色:取任务(13)

			玩家数据[id].角色:取消任务(任务id)

			任务数据[任务id] = nil
		else
			任务数据[任务id].次数 = 任务数据[任务id].次数 + 1

			self:设置宠修任务(id, 任务id)
		end
	else
		任务数据[任务id].次数 = 任务数据[任务id].次数 + 1

		self:设置宠修任务(id, 任务id)
	end
end

function 任务处理类:添加宠修任务(id)
	if 玩家数据[id].角色.数据.等级 < 40 then
		添加最后对话(id, "只有等级达到40级的玩家才可以领取本任务。")

		return
	elseif 玩家数据[id].角色.数据.银子 < 500000 then
		添加最后对话(id, "你没有那么多的银子。")

		return
	elseif 活动次数查询(id, "跑环") == false then
		return
	end

	玩家数据[id].角色:扣除银子(500000, 0, 0, "领取宠物修炼任务", 1)

	local 任务id = id .. "_13_" .. os.time()
	local 结束时间 = 9999999999.0
	任务数据[任务id] = {
		地图编号 = 1001,
		名称 = 1,
		积分 = 0,
		次数 = 1,
		类型 = 13,
		地图名称 = 1,
		模型 = 1,
		id = 任务id,
		起始 = os.time(),
		结束 = 结束时间,
		玩家id = id,
		队伍组 = {}
	}

	玩家数据[id].角色:添加任务(任务id)
	self:设置宠修任务(id, 任务id)
end

function 任务处理类:设置宠修任务(id, 任务id)
	local 类型 = ygsj()

	if 类型 <= 12 then
		类型 = 12
	elseif 类型 <= 24 then
		类型 = 13
	elseif 类型 <= 36 then
		类型 = 14
	elseif 类型 <= 40 then
		类型 = 15
	elseif 类型 <= 65 then
		类型 = 5
	else
		类型 = 11
	end

	local 序列, 地图, 名称 = nil
	local aa = 0
	local 旧名称 = 任务数据[任务id].名称 .. ""

	while aa == 0 or 名称 == 旧名称 do
		序列 = 取随机数(1, #Q_随机人物)
		地图 = Q_随机人物[序列].地图
		名称 = Q_随机人物[序列].名称[取随机数(1, #Q_随机人物[序列].名称)]
		aa = aa + 1
	end

	任务数据[任务id].地图编号 = 地图
	任务数据[任务id].地图名称 = 取地图名称(地图)
	任务数据[任务id].名称 = 名称
	任务数据[任务id].分类 = 类型
	任务数据[任务id].传说 = nil
	任务数据[任务id].物品 = nil
	任务数据[任务id].bb = nil
	任务数据[任务id].bb次数 = nil

	if 类型 == 11 then
		添加最后对话(id, format("前些日子#Y%s#W的#R%s#W帮了我不少忙，请你前去替我感谢他吧。", 任务数据[任务id].地图名称, 任务数据[任务id].名称))
	elseif 类型 == 12 then
		local 临时等级 = 取随机数(3, 8)
		任务数据[任务id].等级 = 临时等级
		临时限制 = 临时等级
		local 物品名称 = 玩家数据[id].装备.打造物品[取随机数(1, 23)][临时限制 + 1]

		if type(物品名称) == "table" then
			物品名称 = 物品名称[取随机数(1, #物品名称)]
		end

		任务数据[任务id].物品 = 物品名称

		if 任务数据[任务id].物品 == nil then
			任务数据[任务id].物品 = "追星踏月"
			任务数据[任务id].等级 = 6
		end

		添加最后对话(id, format("听闻#Y%s#W的#R%s#W正在四处搜寻#Y%s(" .. tostring(临时等级 * 10) .. "级)#W，请你帮他寻找一个吧。", 任务数据[任务id].地图名称, 任务数据[任务id].名称, 取装备详细说明(任务数据[任务id].物品)))
	elseif 类型 == 13 then
		local 物品表 = {
			"烤肉",
			"醉生梦死",
			"蛇胆酒",
			"百味酒",
			"梅花酒",
			"长寿面",
			"翡翠豆腐",
			"桂花丸",
			"佛跳墙",
			"佛跳墙",
			"佛跳墙",
			"珍露酒",
			"烤鸭",
			"烤鸭",
			"豆斋果",
			"烤鸭",
			"臭豆腐",
			"佛跳墙",
			"烤鸭",
			"虎骨酒",
			"魔兽要诀",
			"魔兽要诀",
			"高级魔兽要诀",
			"通灵神臂"
		}
		任务数据[任务id].物品 = 物品表[取随机数(1, #物品表)]

		if 任务数据[任务id].物品 == "魔兽要诀" then
			任务数据[任务id].等级 = 9
		elseif 任务数据[任务id].物品 == "高级魔兽要诀" then
			任务数据[任务id].等级 = 10
		elseif 任务数据[任务id].物品 == "通灵神臂" then
			任务数据[任务id].等级 = 10
		end

		添加最后对话(id, format("听闻#Y%s#W的#R%s#W正在四处搜寻#Y%s#W，请你帮他寻找一个吧。", 任务数据[任务id].地图名称, 任务数据[任务id].名称, 取装备详细说明(任务数据[任务id].物品)))
	elseif 类型 == 14 then
		local 物品表 = {
			"金香玉",
			"小还丹",
			"千年保心丹",
			"风水混元丹",
			"定神香",
			"蛇蝎美人",
			"九转回魂丹",
			"佛光舍利子",
			"十香返生丸",
			"五龙丹",
			"金创药",
			"金香玉",
			"小还丹",
			"千年保心丹",
			"风水混元丹",
			"定神香",
			"蛇蝎美人",
			"九转回魂丹",
			"佛光舍利子",
			"十香返生丸",
			"五龙丹",
			"魔兽要诀",
			"魔兽要诀",
			"高级魔兽要诀",
			"通灵神臂"
		}
		任务数据[任务id].物品 = 物品表[取随机数(1, #物品表)]

		if 任务数据[任务id].物品 == "魔兽要诀" then
			任务数据[任务id].等级 = 9
		elseif 任务数据[任务id].物品 == "高级魔兽要诀" then
			任务数据[任务id].等级 = 10
		elseif 任务数据[任务id].物品 == "通灵神臂" then
			任务数据[任务id].等级 = 10
		end

		添加最后对话(id, format("听闻#Y%s#W的#R%s#W正在四处搜寻#Y%s#W，请你帮他寻找一个吧。", 任务数据[任务id].地图名称, 任务数据[任务id].名称, 取装备详细说明(任务数据[任务id].物品)))
	elseif 类型 == 15 then
		任务数据[任务id].bb = nil
		local bb = nil

		while 任务数据[任务id].bb == nil do
			bb = 取等级怪(取随机数(0, 65))
			任务数据[任务id].bb = 取敌人信息(bb[取随机数(1, #bb)])[2]
		end

		添加最后对话(id, format("听闻#Y%s#W的#R%s#W沉迷于炼妖，现在他正缺少#Y变异%s#W，还请你想法子给他弄一只吧。", 任务数据[任务id].地图名称, 任务数据[任务id].名称, 任务数据[任务id].bb))
	elseif 类型 == 5 then
		任务数据[任务id].战斗 = 任务数据[任务id].名称

		添加最后对话(id, format("听闻#Y%s#W的#R%s#W正在挑战各路豪杰，以少侠的实力，想必定能将之折服。", 任务数据[任务id].地图名称, 任务数据[任务id].名称))
	end

	玩家数据[id].角色:刷新任务跟踪()
end

function 任务处理类:添加宝图任务(id)
	if 活动次数查询(id, "宝图任务") == false then
		return
	elseif 取等级要求(id, 30) == false then
		常规提示(id, "#Y/领取该任务至少要达到30级")

		return
	elseif 玩家数据[id].队伍 ~= 0 then
		常规提示(id, "#Y/请退出队伍、单人领取此任务")

		return
	elseif 玩家数据[id].角色:扣除银子(500) == false then
		return
	end

	local 任务id = id .. "_4_" .. os.time()
	local 地图范围 = {
		1501,
		1092,
		1193,
		1070,
		1142
	}
	local 地图 = 地图范围[取随机数(1, #地图范围)]
	local xy = 地图处理类.地图坐标[地图]:取随机点()
	local 名称 = 宝图名字.姓[取随机数(1, #宝图名字.姓)] .. 宝图名字.名[取随机数(1, #宝图名字.名)]

	if ygsj() <= 70 then
		名称 = 名称 .. 宝图名字.氏[取随机数(1, #宝图名字.氏)]
	end

	local 结束时间 = 3600
	任务数据[任务id] = {
		类型 = 4,
		模型 = "强盗",
		领取人id = {
			id
		},
		id = 任务id,
		起始 = os.time(),
		结束 = 结束时间,
		玩家id = id,
		队伍组 = {},
		名称 = 名称,
		x = xy.x,
		y = xy.y,
		地图编号 = 地图,
		地图名称 = 取地图名称(地图)
	}

	玩家数据[id].角色:添加任务(任务id)
	发送数据(玩家数据[id].连接id, 39)

	local 对话列表 = {
		"听说近日有强盗#Y/%s#W/被官府通缉，现已逃到了#G/%s(%s,%s)#W/处。若是能找到他，肯定能搜出不少宝物。",
		"据说大盗#Y/%s#W/近日又出来作乱了，有人在#G/%s(%s,%s)#W/看到过他。若是能找到他，肯定能搜出不少宝物。",
		"世道真乱，听闻#Y/%s#W/这两日正在#G/%s(%s,%s)#W/作乱。少侠可以前去看看，他身上的宝贝肯定少不了。",
		"传闻强盗#Y/%s#W/近期在#G/%s(%s,%s)#W/频繁犯案。少侠可以前去看看，他身上的宝贝肯定少不了。",
		"最近常有人提起一个名叫#Y/%s#W/的强盗，也不知道抢到了什么宝贝，现在他应该在#G/%s(%s,%s)#W/附近，少侠可去碰碰运气。"
	}

	发送数据(玩家数据[id].连接id, 1501, {
		名称 = "店小二",
		模型 = "男人_店小二",
		对话 = format(对话列表[ygsj(#对话列表)], 任务数据[任务id].名称, 任务数据[任务id].地图名称, 任务数据[任务id].x, 任务数据[任务id].y)
	})
	地图处理类:添加单位(任务id)

	return true
end

function 任务处理类:添加三界悬赏任务(id)
	local 任务id = id .. "_209_" .. os.time()
	local 地图范围 = {
		1501,
		1092,
		1208,
		1070,
		1040,
		1226
	}
	local 地图 = 地图范围[取随机数(1, #地图范围)]
	local xy = 地图处理类.地图坐标[地图]:取随机点()
	local 名称 = "通缉犯"
	local 结束时间 = 7200
	任务数据[任务id] = {
		类型 = 209,
		模型 = "强盗",
		领取人id = {
			id
		},
		id = 任务id,
		起始 = os.time(),
		结束 = 结束时间,
		玩家id = id,
		队伍组 = {},
		名称 = 名称,
		x = xy.x,
		y = xy.y,
		地图编号 = 地图,
		地图名称 = 取地图名称(地图)
	}

	玩家数据[id].角色:添加任务(任务id)
	发送数据(玩家数据[id].连接id, 39)
	发送数据(玩家数据[id].连接id, 1501, {
		名称 = "铁无双",
		模型 = "男人_衙役",
		对话 = format("据可靠情报，现有#Y/%s#W/逃到了#G/%s(%s,%s)#W/处，请你前往将其缉拿。此通缉犯实力不容小窥，请尽量寻找一些高人前来协助。", 任务数据[任务id].名称, 任务数据[任务id].地图名称, 任务数据[任务id].x, 任务数据[任务id].y)
	})
	地图处理类:添加单位(任务id)
end

function 任务处理类:完成游泳任务(id)
	local 队伍id = 玩家数据[id].队伍
	local 等级 = 取队伍平均等级(玩家数据[id].队伍, id)
	local 任务id = 玩家数据[id].角色:取任务(109)

	for n = 1, #队伍数据[队伍id].成员数据 do
		if 队伍处理类:取是否助战(玩家数据[id].队伍, n) == 0 then
			local 临时id = 队伍数据[队伍id].成员数据[n]
			local 经验 = 等级 * 30 * 2
			local 银子 = 等级 * 30 * 2

			添加活动次数(临时id, "游泳比赛")

			if 妖魔积分[临时id] == nil then
				妖魔积分[临时id] = {
					总计 = 0,
					当前 = 0,
					使用 = 0
				}
			end

			妖魔积分[临时id].当前 = 妖魔积分[临时id].当前 + 1
			妖魔积分[临时id].总计 = 妖魔积分[临时id].总计 + 1

			常规提示(临时id, "#Y/你获得了1点妖魔积分(可用于兑换和幸运转盘抽奖)")
			玩家数据[临时id].角色:添加经验(经验, "游泳比赛")
			玩家数据[临时id].角色:添加银子(银子, "游泳比赛", 1)
			玩家数据[临时id].角色:添加储备(银子, "游泳比赛", 1)
			召唤兽添加经验(qz(经验 * 0.5), 临时id, "游泳比赛", self.地图等级)

			if 任务数据[任务id].序列 == 20 then
				活跃数据[临时id].活跃度 = 活跃数据[临时id].活跃度 + 1
				玩家数据[临时id].角色.数据.累积活跃.当前积分 = 玩家数据[临时id].角色.数据.累积活跃.当前积分 + 1

				常规提示(临时id, "#Y/你完成了游泳比赛")

				奖励次数[id] = 取奖励次数(id)

				for i = 1, 奖励次数[id] do
					local 通知开关 = true
					local 奖励参数 = ygsj()

					if 奖励参数 <= 5 then
						奖励名称[id] = 快捷给道具(id, "灵饰指南书", 取随机数(8, 12))
					elseif 奖励参数 <= 10 then
						奖励名称[id] = 快捷给道具(id, "元灵晶石", 取随机数(8, 12))
					elseif 奖励参数 <= 15 then
						奖励名称[id] = 快捷给道具(id, "七彩石", 1)
					elseif 奖励参数 <= 20 then
						奖励名称[id] = 快捷给道具(id, "五行石", 1)
					elseif 奖励参数 <= 23 then
						奖励名称[id] = 快捷给道具(id, "特效石碎片", 1)
					elseif 奖励参数 <= 35 then
						奖励名称[id] = 快捷给道具(id, "高级魔兽要诀", 1)
					elseif 奖励参数 <= 50 then
						通知开关 = false
						奖励名称[id] = 快捷给道具(id, "魔兽要诀", 1)
					elseif 奖励参数 <= 60 then
						通知开关 = false
						奖励名称[id] = 快捷给道具(id, "九转金丹", 5)
					elseif 奖励参数 <= 70 then
						通知开关 = false
						奖励名称[id] = 快捷给道具(id, "九转金丹", 5)
					elseif 奖励参数 <= 95 then
						奖励名称[id] = 快捷给道具(id, "五宝", 1)
					else
						奖励名称[id] = 快捷给道具(id, "通灵神符", 1)
					end

					if 通知开关 == true then
						广播消息({
							频道 = "xt",
							内容 = format("#S(游泳比赛)#R/%s#Y经过一番激烈的游水，最终完成了#R%s#Y，因此获得了其奖励的#G/%s#Y" .. "#" .. 取随机数(1, 110), 玩家数据[临时id].角色.数据.名称, "游泳比赛", 奖励名称[id])
						})
					end
				end

				玩家数据[临时id].角色:取消任务(玩家数据[临时id].角色:取任务(109))
			end
		end
	end

	if 任务数据[任务id].序列 == 20 then
		任务数据[任务id] = nil
	else
		任务数据[任务id].序列 = 任务数据[任务id].序列 + 1
		任务数据[任务id].战斗 = false

		发送数据(玩家数据[id].连接id, 1501, {
			模型 = "雨师",
			名称 = 任务数据[任务id].序列 .. "号裁判",
			对话 = format("报道成功，现在请立即前往#Y/%s(%s,%s)#W/的%s号裁判报道。", 取地图名称(Q_游泳数据[任务数据[任务id].序列].z), Q_游泳数据[任务数据[任务id].序列].x, Q_游泳数据[任务数据[任务id].序列].y, 任务数据[任务id].序列)
		})
		玩家数据[id].角色:刷新任务跟踪()
	end
end

function 任务处理类:添加游泳任务(id)
	if 玩家数据[id].队伍 == 0 then
		添加最后对话(id, "此活动只能单人#S组队#参加。")

		return
	elseif 活动次数查询(id, "游泳比赛") == false then
		return
	elseif 取队伍人数(id) < 1 then
		添加最后对话(id, "此活动只能单人#S组队#参加。")

		return
	elseif 取等级要求(id, 30) == false then
		添加最后对话(id, "此活动要求最低等级不能小于30级，队伍中有成员等级未达到此要求。")

		return
	elseif 游泳开关 == false then
		添加最后对话(id, "当前不是比赛时间。")

		return
	end

	local 提示 = ""
	local 队伍id = 玩家数据[id].队伍
	local id组 = {}

	for n = 1, #队伍数据[队伍id].成员数据 do
		id组[n] = 队伍数据[队伍id].成员数据[n]

		if 玩家数据[id组[n]].角色:取任务(108) ~= 0 then
			提示 = "#Y/" .. 玩家数据[id组[n]].角色.数据.名称 .. "已经领取过任务了"
		end
	end

	if 提示 ~= "" then
		常规提示(id, 提示)

		return
	end

	local 任务id = id .. "_109_" .. os.time()
	任务数据[任务id] = {
		战斗 = false,
		序列 = 1,
		类型 = 109,
		结束 = 7200,
		id = 任务id,
		起始 = os.time(),
		玩家id = id,
		队伍组 = {}
	}

	for n = 1, #id组 do
		玩家数据[id组[n]].角色:添加任务(任务id)
		发送数据(玩家数据[id组[n]].连接id, 1501, {
			名称 = "报名官",
			模型 = "雨师",
			对话 = format("你成功参加了游泳比赛，现在请立即前往#Y/%s(%s,%s)#W/的%s号裁判报道。", 取地图名称(Q_游泳数据[任务数据[任务id].序列].z), Q_游泳数据[任务数据[任务id].序列].x, Q_游泳数据[任务数据[任务id].序列].y, 1)
		})

		if 游戏数据[id组[n]] == nil then
			游戏数据[id组[n]] = 0
		end

		游戏数据[id组[n]] = 游戏数据[id组[n]] + 1
	end
end

function 任务处理类:添加闯关任务(id)
	if 玩家数据[id].队伍 == 0 then
		添加最后对话(id, "此活动最少需要三人组队参加。")

		return
	elseif 取队伍人数(id) < 3 then
		添加最后对话(id, "此活动最少需要三人组队参加。")

		return
	elseif 取等级要求(id, 30) == false then
		添加最后对话(id, "此活动要求最低等级不能小于30级，队伍中有成员等级未达到此要求。")

		return
	elseif 闯关参数.开关 == false then
		添加最后对话(id, "当前不是门派闯关活动时间")

		return
	elseif 活动次数查询(id, "门派闯关") == false then
		return
	end

	local 提示 = ""
	local 队伍id = 玩家数据[id].队伍
	local id组 = {}

	for n = 1, #队伍数据[队伍id].成员数据 do
		id组[n] = 队伍数据[队伍id].成员数据[n]

		if 玩家数据[id组[n]].角色:取任务(107) ~= 0 then
			提示 = "#Y/" .. 玩家数据[id组[n]].角色.数据.名称 .. "已经领取过任务了"
		end
	end

	if 提示 ~= "" then
		常规提示(id, 提示)

		return
	end

	local 任务id = id .. "_107_" .. os.time()
	任务数据[任务id] = {
		类型 = 107,
		结束 = 7200,
		id = 任务id,
		起始 = os.time(),
		玩家id = id,
		队伍组 = {},
		闯关序列 = table.loadstring(table.tostring(Q_门派编号))
	}
	任务数据[任务id].当前序列 = 取随机数(1, #任务数据[任务id].闯关序列)
	任务数据[任务id].地图编号 = 取门派地图(Q_门派编号[任务数据[任务id].当前序列])[1]
	任务数据[任务id].x = Q_闯关数据[Q_门派编号[任务数据[任务id].当前序列]].x
	任务数据[任务id].y = Q_闯关数据[Q_门派编号[任务数据[任务id].当前序列]].y

	for n = 1, #任务数据[任务id].闯关序列 do
		任务数据[任务id].闯关序列[n] = n
	end

	for n = 1, #id组 do
		玩家数据[id组[n]].角色:添加任务(任务id)
		发送数据(玩家数据[id组[n]].连接id, 1501, {
			名称 = "门派闯关使者",
			模型 = "男人_马副将",
			对话 = format("你成功领取了门派闯关任务，请立即前往#Y/%s#W/接受考验。", Q_门派编号[任务数据[任务id].当前序列])
		})
	end

	return true
end

function 任务处理类:开启门派闯关()
	for n = 1, 15 do
		local 任务id = n .. "_" .. 取随机数(999, 1111) .. "_106_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999)
		随机序列 = 随机序列 + 1
		local 地图范围 = 取门派地图(Q_门派编号[n])
		local 地图 = 地图范围[1]
		local 结束时间 = 99999
		任务数据[任务id] = {
			类型 = 106,
			id = 任务id,
			起始 = os.time(),
			结束 = 结束时间,
			玩家id = id,
			队伍组 = {},
			名称 = Q_门派编号[n] .. "护法",
			模型 = Q_闯关数据[Q_门派编号[n]].模型,
			x = Q_闯关数据[Q_门派编号[n]].x,
			y = Q_闯关数据[Q_门派编号[n]].y,
			武器 = Q_闯关数据[Q_门派编号[n]].武器.名称,
			方向 = Q_闯关数据[Q_门派编号[n]].方向,
			地图编号 = 地图,
			序列 = n,
			地图名称 = 取地图名称(地图)
		}

		地图处理类:添加单位(任务id)
	end

	广播消息({
		频道 = "xt",
		内容 = "#G/十五门派闯关活动已经开启，各位玩家可以前往长安城#R/门派闯关活动使者#G/处开启闯关活动#32"
	})

	闯关参数 = {
		开关 = true,
		起始 = os.time(),
		记录 = {}
	}
end

function 任务处理类:开启皇宫飞贼()
	皇宫飞贼 = {
		开关 = true,
		贼王 = {}
	}

	广播消息({
		频道 = "xt",
		内容 = "#G/皇宫飞贼活动已经开启，各位玩家可以前往长安城#R/御林军左统领#G/处领取任务#32"
	})
end

function 任务处理类:开启迷宫()
	for n = 1, 20 do
		for i, v in pairs(地图处理类.地图单位[1600 + n]) do
			地图处理类:删除单位(1600 + n, i)
		end
	end

	for n = 1, 20 do
		local 结束时间 = 99999
		local 真假 = {}

		if ygsj() <= 50 then
			真假 = {
				[1.0] = true,
				[2.0] = false
			}
		else
			真假 = {
				[1.0] = false,
				[2.0] = true
			}
		end

		for i = 1, 2 do
			local 任务id = i .. "_" .. n .. "_" .. 取随机数(1999, 11111) .. "_201_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999) .. "_" .. 1600 + n .. "_" .. i
			随机序列 = 随机序列 + 1
			local 地图 = 1600 + n
			local xy = 地图处理类.地图坐标[地图]:取随机点()

			if 地图 == 1601 then
				if i == 1 then
					任务数据[任务id] = {
						名称 = "迷宫土地",
						真假 = true,
						结束 = 999999,
						类型 = 201,
						模型 = "男人_土地",
						称谓 = "迷宫传送员",
						id = 任务id,
						起始 = os.time(),
						玩家id = id,
						队伍组 = {},
						x = xy.x,
						y = xy.y,
						地图编号 = 地图,
						序列 = n,
						地图名称 = 取地图名称(地图),
						真假 = true
					}

					地图处理类:添加单位(任务id)
				end
			elseif 地图 == 1620 then
				if i == 1 then
					任务数据[任务id] = {
						名称 = "迷宫守卫",
						类型 = 201,
						结束 = 999999,
						模型 = "护卫",
						称谓 = "迷宫奖励专员",
						id = 任务id,
						起始 = os.time(),
						玩家id = id,
						队伍组 = {},
						x = xy.x,
						y = xy.y,
						地图编号 = 地图,
						序列 = n,
						地图名称 = 取地图名称(地图)
					}

					地图处理类:添加单位(任务id)
				else
					任务数据[任务id] = {
						名称 = "迷宫土地",
						真假 = false,
						结束 = 999999,
						类型 = 201,
						模型 = "男人_土地",
						称谓 = "迷宫传送员",
						id = 任务id,
						起始 = os.time(),
						玩家id = id,
						队伍组 = {},
						x = xy.x,
						y = xy.y,
						地图编号 = 地图,
						序列 = n,
						地图名称 = 取地图名称(地图),
						真假 = false
					}

					地图处理类:添加单位(任务id)
				end
			else
				任务数据[任务id] = {
					名称 = "迷宫土地",
					结束 = 999999,
					类型 = 201,
					模型 = "男人_土地",
					称谓 = "迷宫传送员",
					id = 任务id,
					起始 = os.time(),
					玩家id = id,
					队伍组 = {},
					x = xy.x,
					y = xy.y,
					地图编号 = 地图,
					序列 = n,
					真假 = 真假[i],
					地图名称 = 取地图名称(地图)
				}

				地图处理类:添加单位(任务id)

				if i == 2 and ygsj() <= 20 then
					任务id = i .. "_" .. n .. "_" .. 取随机数(1999, 11111) .. "_201_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999) .. "_" .. 1600 + n .. "_" .. 3
					随机序列 = 随机序列 + 1
					xy = 地图处理类.地图坐标[地图]:取随机点()
					任务数据[任务id] = {
						名称 = "迷宫土地",
						结束 = 999999,
						类型 = 201,
						模型 = "男人_土地",
						称谓 = "迷宫随机传送",
						id = 任务id,
						起始 = os.time(),
						玩家id = id,
						队伍组 = {},
						x = xy.x,
						y = xy.y,
						地图编号 = 地图,
						序列 = n,
						真假 = 真假[i],
						地图名称 = 取地图名称(地图)
					}

					地图处理类:添加单位(任务id)
				end
			end
		end
	end

	广播消息({
		频道 = "xt",
		内容 = "#G/幻域迷宫活动已经开启，各位玩家可以前往傲来国#R/金毛猿#G/处参加幻域迷宫活动#32"
	})

	迷宫数据 = {
		开关 = true,
		事件 = os.time(),
		奖励 = 0,
		起始 = os.time()
	}

	self:刷新迷宫小怪()

	连抽列表 = {}
end

function 任务处理类:开启地煞星任务(id)
	local 地图范围 = {
		1193,
		1514,
		1091,
		1140,
		1146,
		1513
	}
	local 地图范围2 = {
		1201,
		1203,
		1131,
		1512,
		1258,
		2001
	}
	local 地图范围3 = {
		1207,
		1232,
		1233,
		1203,
		2007,
		1920
	}
	local 地煞显示地图 = {}
	local 地煞名称 = ""

	for i = 1, 10 do
		地煞名称 = Q_地煞星等级[qz((i - 1) / 2) + 1]

		for n = 1, 18 do
			local 地煞等级 = n * 10
			local 地图 = 0

			if 地煞等级 <= 60 then
				地图 = 地图范围[取随机数(1, #地图范围)]
			elseif 地煞等级 <= 120 then
				地图 = 地图范围2[取随机数(1, #地图范围2)]
			else
				地图 = 地图范围3[取随机数(1, #地图范围3)]
			end

			local xy = 地图处理类.地图坐标[地图]:取随机点()
			local 任务id = "_" .. 地煞等级 .. "_" .. 取随机数(1999, 11111) .. "304" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999) .. "_" .. 地煞等级
			随机序列 = 随机序列 + 1
			local 造型 = Q_随机模型[取随机数(1, #Q_随机模型)]
			local 武器造型 = 取高级地煞星武器造型(造型)
			任务数据[任务id] = {
				行走开关 = true,
				结束 = 1800,
				类型 = 304,
				id = 任务id,
				起始 = os.time(),
				玩家id = id,
				队伍组 = {},
				名称 = 地煞名称,
				模型 = 造型,
				武器 = 武器造型.武器,
				武器等级 = 武器造型.级别,
				等级 = 地煞等级,
				x = xy.x,
				y = xy.y,
				地图编号 = 地图,
				地图名称 = 取地图名称(地图)
			}

			if 任务数据[任务id].名称 == "初出茅庐地煞星" then
				任务数据[任务id].称谓 = "★"
			elseif 任务数据[任务id].名称 == "小有所成地煞星" then
				任务数据[任务id].称谓 = "★★"
			elseif 任务数据[任务id].名称 == "伏虎斩妖地煞星" then
				任务数据[任务id].称谓 = "★★★"
			elseif 任务数据[任务id].名称 == "御风神行地煞星" then
				任务数据[任务id].称谓 = "★★★★"
			elseif 任务数据[任务id].名称 == "履水吐焰地煞星" then
				任务数据[任务id].称谓 = "★★★★★"
			end

			地图处理类:添加单位(任务id)

			地煞显示地图[#地煞显示地图 + 1] = 任务数据[任务id].地图名称
		end
	end

	删除重复(地煞显示地图)

	local 地煞显示地图1 = ""

	for i = 1, #地煞显示地图 do
		if i == 1 then
			地煞显示地图1 = 地煞显示地图[i]
		else
			地煞显示地图1 = 地煞显示地图1 .. "、" .. 地煞显示地图[i]
		end
	end

	广播消息({
		频道 = "xt",
		内容 = format("#G据可靠消息，强大而神秘的地煞星带着天界宝物已经出现在#Y%s#G场景内。只有智勇双全的强者才有机缘获得宝物，少侠敢来挑战么？" .. "#" .. 取随机数(1, 110), 地煞显示地图1)
	})
end

function 任务处理类:完成地煞星任务(任务id, id组)
	local 名称 = nil

	if 任务数据[任务id] == nil then
		return
	end

	if 掉率模式 == 1 then
		for n = 1, #id组 do
			local id = id组[n]

			if 队伍处理类:取是否助战(玩家数据[id].队伍, n) == 0 and 添加活动次数(id, "地煞星") == true then
				if 任务数据[任务id].名称 == "初出茅庐地煞星" then
					通用给奖励(id, {
						活跃度 = 5,
						经验 = {
							5000,
							6000
						},
						银子 = {
							2000,
							2200
						}
					}, "地煞1星", nil, 任务数据[任务id].名称)
				elseif 任务数据[任务id].名称 == "小有所成地煞星" then
					通用给奖励(id, {
						活跃度 = 5,
						经验 = {
							7000,
							9000
						},
						银子 = {
							3000,
							3300
						}
					}, "地煞2星", nil, 任务数据[任务id].名称)
				elseif 任务数据[任务id].名称 == "伏虎斩妖地煞星" then
					通用给奖励(id, {
						活跃度 = 5,
						经验 = {
							10000,
							11000
						},
						银子 = {
							4000,
							4400
						}
					}, "地煞3星", nil, 任务数据[任务id].名称)
				elseif 任务数据[任务id].名称 == "御风神行地煞星" then
					通用给奖励(id, {
						活跃度 = 5,
						经验 = {
							11000,
							12000
						},
						银子 = {
							6000,
							6600
						}
					}, "地煞4星", nil, 任务数据[任务id].名称)
				elseif 任务数据[任务id].名称 == "履水吐焰地煞星" then
					通用给奖励(id, {
						活跃度 = 5,
						经验 = {
							12000,
							14000
						},
						银子 = {
							10000,
							11000
						}
					}, "地煞5星", nil, 任务数据[任务id].名称)
				end
			end
		end
	else
		local 等级 = qz1(取队伍平均等级(玩家数据[id组[1]].队伍, id组[1]) / 10) * 10
		local 物品奖励系数 = 1

		if 任务数据[任务id].名称 == "初出茅庐地煞星" then
			物品奖励系数 = 1
		elseif 任务数据[任务id].名称 == "小有所成地煞星" then
			物品奖励系数 = 1.1
		elseif 任务数据[任务id].名称 == "伏虎斩妖地煞星" then
			物品奖励系数 = 1.2
		elseif 任务数据[任务id].名称 == "御风神行地煞星" then
			物品奖励系数 = 1.3
		elseif 任务数据[任务id].名称 == "履水吐焰地煞星" then
			物品奖励系数 = 1.4
		end

		local 经验 = 等级 * 取随机数(5000, 6000) * 2 * (物品奖励系数 - 0.8) * 5
		local 银子 = 等级 * 取随机数(3500, 4200) * 2 * (物品奖励系数 - 0.8) * 5
		地煞奖励 = {
			{
				五宝 = 100
			},
			{
				五宝 = 100
			},
			{
				五宝 = 100
			},
			{
				通灵神臂 = 100
			},
			{
				通灵神臂 = 100
			},
			{
				通灵神符 = 50 + qz(物品奖励系数 - 1) * 10
			},
			{
				通灵神符 = 50 + qz(物品奖励系数 - 1) * 10
			},
			{
				坐骑内丹 = 101 + qz((物品奖励系数 - 1) * 5)
			},
			{
				坐骑内丹 = 101 + qz((物品奖励系数 - 1) * 5)
			},
			{
				坐骑内丹 = 101 + qz((物品奖励系数 - 1) * 5)
			},
			{
				通灵神戒 = -15 + (物品奖励系数 - 1) * 150
			},
			{
				属性转换符 = 100
			},
			{
				属性转换符 = 100
			},
			{
				通灵重置丹 = 100 + (物品奖励系数 - 1) * 10
			},
			{
				高级通灵重置丹 = 100 + qz((物品奖励系数 - 1) * 5)
			},
			{
				还魂秘术 = 1 + (物品奖励系数 - 1) * 10
			},
			{
				蚩尤武诀 = 1 + (物品奖励系数 - 1) * 10
			},
			{
				黄帝内经 = 1 + (物品奖励系数 - 1) * 10
			},
			{
				七彩石 = 20 + (物品奖励系数 - 1) * 100
			},
			{
				五行石 = 20 + (物品奖励系数 - 1) * 100
			},
			{
				特效石碎片 = 10 + (物品奖励系数 - 1) * 100
			},
			{
				特技石 = 20 + (物品奖励系数 - 1) * 100
			},
			{
				修炼果 = 101 + (物品奖励系数 - 1) * 10
			},
			{
				九转金丹 = 101 + (物品奖励系数 - 1) * 10
			},
			{
				种族坐骑礼包 = -2 + (物品奖励系数 - 1) * 10
			},
			{
				祥瑞坐骑礼包 = -3 + (物品奖励系数 - 1) * 10
			},
			{
				百炼晶石碎片 = 5 + (物品奖励系数 - 1) * 100
			},
			{
				超级金柳露 = 103 + (物品奖励系数 - 1) * 10
			},
			{
				宝石 = 101 + (物品奖励系数 - 1) * 1000
			},
			{
				宝石 = 101 + (物品奖励系数 - 1) * 1000
			},
			{
				宝石 = 201 + (物品奖励系数 - 1) * 1000
			},
			{
				钟灵石级1 = 100
			},
			{
				钟灵石级2 = 20 + (物品奖励系数 - 1) * 100
			},
			{
				召唤兽内丹 = 100
			},
			{
				高级召唤兽内丹 = 10 + (物品奖励系数 - 1) * 100
			},
			{
				易经丹 = 100
			},
			{
				炼兽真经 = 100
			},
			{
				属性石 = 2 + (物品奖励系数 - 1) * 20
			},
			{
				资质丸 = 2 + (物品奖励系数 - 1) * 20
			},
			{
				百炼晶石碎片 = -10 + (物品奖励系数 - 1) * 100
			},
			{
				百炼晶石碎片 = 0 + (物品奖励系数 - 1) * 100
			},
			{
				百炼晶石 = -10 + (物品奖励系数 - 1) * 50
			},
			{
				神兜兜 = 100
			},
			{
				神兜兜 = 100
			},
			{
				神兜兜 = 100
			},
			{
				法宝级1 = 99
			},
			{
				法宝级1 = 99
			},
			{
				法宝级2 = 10 + (物品奖励系数 - 1) * 100
			},
			{
				法宝级2 = 10 + (物品奖励系数 - 1) * 100
			},
			{
				法宝级3 = -40 + (物品奖励系数 - 1) * 200
			},
			{
				法宝级4 = -60 + (物品奖励系数 - 1) * 200
			},
			{
				孤儿名册 = 10 + (物品奖励系数 - 1) * 100
			},
			{
				驾驭宝典 = 20 + (物品奖励系数 - 1) * 100
			},
			{
				经脉秘籍 = 1 + (物品奖励系数 - 1) * 50
			},
			{
				拜师卷轴 = 1 + (物品奖励系数 - 1) * 50
			},
			{
				高级魔兽要诀 = 5 + (物品奖励系数 - 1) * 100
			},
			{
				高级魔兽要诀 = 5 + (物品奖励系数 - 1) * 100
			},
			{
				资质丸 = 3 + (物品奖励系数 - 1) * 20
			},
			{
				属性石 = 3 + (物品奖励系数 - 1) * 20
			},
			{
				特殊魔兽要诀 = -20 + (物品奖励系数 - 1) * 100
			},
			{
				百炼精铁 = math.min(-100 + (物品奖励系数 - 1) * 1000, 100) + math.min(qz1(等级 * 物品奖励系数 / 10 + 2), 14)
			},
			{
				制造指南书 = math.min(-100 + (物品奖励系数 - 1) * 1000, 100) + math.min(qz1(等级 * 物品奖励系数 / 10 + 2), 14)
			},
			{
				元灵晶石 = math.min(-100 + (物品奖励系数 - 1) * 1000, 100) + math.min(qz1(等级 * 物品奖励系数 / 10 + 2), 14)
			},
			{
				灵饰指南书 = math.min(-100 + (物品奖励系数 - 1) * 1000, 100) + math.min(qz1(等级 * 物品奖励系数 / 10 + 2), 14)
			},
			{
				魔兽残卷 = 102 + (物品奖励系数 - 1) * 20
			},
			{
				魔兽残卷 = 102 + (物品奖励系数 - 1) * 20
			},
			{
				特殊魔兽要诀 = 1 + (物品奖励系数 - 1) * 40
			},
			{
				钟灵石级1 = 30 + (物品奖励系数 - 1) * 100
			},
			{
				钟灵石级2 = 10 + (物品奖励系数 - 1) * 100
			},
			{
				钟灵石级3 = -10 + (物品奖励系数 - 1) * 100
			},
			{
				钟灵石级4 = -20 + (物品奖励系数 - 1) * 100
			},
			{
				钟灵石级5 = -30 + (物品奖励系数 - 1) * 100
			},
			{
				灵饰洗练石 = -30 + (物品奖励系数 - 1) * 100
			},
			{
				未激活的符石 = -10 + (物品奖励系数 - 1) * 100
			},
			{
				未激活的星石 = -30 + (物品奖励系数 - 1) * 100
			}
		}

		for n = 1, #id组 do
			local id = id组[n]

			if 队伍处理类:取是否助战(玩家数据[id].队伍, n) == 0 then
				玩家数据[id].角色:添加经验(经验, "地煞星", 1)
				玩家数据[id].角色:添加银子(银子, "地煞星", 1)
				添加活动次数(id, "地煞星")

				活跃数据[id].活跃度 = 活跃数据[id].活跃度 + 20
				玩家数据[id].角色.数据.累积活跃.当前积分 = 玩家数据[id].角色.数据.累积活跃.当前积分 + 20

				召唤兽添加经验(qz(经验 * 0.5), id, "地煞星")

				奖励次数[id] = 取奖励次数(id)

				for i = 1, 奖励次数[id] do
					local 通知开关 = true

					if ygsj() <= 10 * 物品奖励系数 * 2 then
						快捷给道具(id, "魔兽要诀", 1)
					end

					奖励名称[id] = 取快捷奖励(id, 地煞奖励, math.min(等级 / 100, 1), 10)

					if 通知开关 and 奖励名称[id] ~= nil then
						广播消息({
							频道 = "xt",
							内容 = format("#S(地煞星)#R/%s#Y经过一番激烈的战斗，最终战胜了#R%s#Y，因此获得了其奖励的#G/%s#Y" .. "#" .. 取随机数(1, 110), 玩家数据[id].角色.数据.名称, 任务数据[任务id].名称, 奖励名称[id])
						})
					end
				end
			end
		end
	end

	地图处理类:删除单位(任务数据[任务id].地图编号, 任务数据[任务id].单位编号)

	任务数据[任务id] = nil
end

function 任务处理类:开启天罡星任务(id)
	local 地图范围 = {
		1201,
		1202,
		1203,
		1221,
		1210,
		1204,
		1258,
		1920
	}
	local 地图范围2 = {
		1232,
		1207,
		1228,
		1229,
		1231,
		1233,
		2007,
		2001
	}
	local 天罡显示地图 = {}

	for i = 1, 2 do
		for n = 1, 17 do
			local 地煞等级 = n * 10
			local 地图 = 0

			if 地煞等级 <= 100 then
				地图 = 地图范围[取随机数(1, #地图范围)]
			else
				地图 = 地图范围2[取随机数(1, #地图范围2)]
			end

			local xy = 地图处理类.地图坐标[地图]:取随机点()
			local 任务id = "_" .. 地煞等级 .. "_" .. 取随机数(1999, 11111) .. "314" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999) .. "_" .. 地煞等级
			随机序列 = 随机序列 + 1
			local 造型 = Q_随机模型[取随机数(1, #Q_随机模型)]
			local 武器造型 = 取天罡星武器造型(造型)
			任务数据[任务id] = {
				行走开关 = true,
				结束 = 1800,
				类型 = 314,
				称谓 = "星君下凡尘",
				id = 任务id,
				起始 = os.time(),
				玩家id = id,
				队伍组 = {},
				名称 = Q_天罡星名称[取随机数(1, #Q_天罡星名称)],
				模型 = 造型,
				武器 = 武器造型.武器,
				武器等级 = 武器造型.级别,
				等级 = 地煞等级,
				x = xy.x,
				y = xy.y,
				地图编号 = 地图,
				地图名称 = 取地图名称(地图)
			}

			地图处理类:添加单位(任务id)

			天罡显示地图[#天罡显示地图 + 1] = 任务数据[任务id].地图名称
		end
	end

	广播消息({
		频道 = "xt",
		内容 = format("#G星君下凡尘，为了培养三界菁英，强大而神秘的三十六天罡星带着天界宝物已经出现在#Y%s，%s，%s，%s，%s，%s，%s，%s，%s，%s，%s，%s#G场景内。帮助智勇双全的强者提升和检验其自身的修为，挑战成功的勇士还可以获得星君们赠予的宝物，少侠敢来挑战么？" .. "#" .. 取随机数(1, 110), 天罡显示地图[1], 天罡显示地图[2], 天罡显示地图[3], 天罡显示地图[4], 天罡显示地图[5], 天罡显示地图[6], 天罡显示地图[7], 天罡显示地图[8], 天罡显示地图[9], 天罡显示地图[10], 天罡显示地图[11], 天罡显示地图[12])
	})
end

function 任务处理类:完成天罡星任务(任务id, id组)
	if 任务数据[任务id] == nil then
		return
	end

	local 经验 = 500000
	local 银子 = 1000000
	local 奖励系数 = 1

	for n = 1, #id组 do
		local id = id组[n]

		if 队伍处理类:取是否助战(玩家数据[id].队伍, n) == 0 then
			if 掉率模式 == 1 then
				通用给奖励(id, {
					活跃度 = 5,
					经验 = {
						20000,
						30000
					},
					银子 = {
						5000,
						6000
					}
				}, "天罡星", nil, 任务数据[任务id].名称)
			else
				local 平均等级 = 取队伍平均等级(玩家数据[id].队伍, id)
				经验 = 平均等级 * 平均等级 * 50 * 奖励系数 + 经验
				银子 = 平均等级 * 600 * 奖励系数 + 银子

				添加活动次数(id, "天罡星")
				玩家数据[id].角色:添加经验(经验, "天罡星", 1)
				玩家数据[id].角色:添加银子(银子, "天罡星", 1)
				召唤兽添加经验(qz(经验 * 0.8), id, "天罡星")

				奖励次数[id] = 取奖励次数(id)

				for i = 1, 奖励次数[id] do
					local 通知开关 = true
					local 奖励参数 = ygsj()

					if 奖励参数 <= 10 then
						if ygsj() <= 50 then
							奖励名称[id] = 快捷给道具(id, "制造指南书", 取随机数(13, 15))
						else
							奖励名称[id] = 快捷给道具(id, "百炼精铁", 取随机数(13, 15))
						end
					elseif 奖励参数 <= 20 then
						奖励名称[id] = 快捷给道具(id, "灵饰指南书", 取随机数(12, 14))
					elseif 奖励参数 <= 30 then
						奖励名称[id] = 快捷给道具(id, "元灵晶石", 取随机数(12, 14))
					elseif 奖励参数 <= 40 then
						奖励名称[id] = 快捷给道具(id, "高级魔兽要诀", 1)
					elseif 奖励参数 <= 50 then
						奖励名称[id] = 快捷给道具(id, "陨铁", ygsj(3))
					elseif 奖励参数 <= 60 then
						奖励名称[id] = 快捷给道具(id, "战魄", 1)
					elseif 奖励参数 <= 70 then
						奖励名称[id] = 快捷给道具(id, "钟灵石", 取随机数(2, 4))
					elseif 奖励参数 <= 73 then
						奖励名称[id] = 快捷给道具(id, "特殊魔兽要诀", 1)
					elseif 奖励参数 <= 80 then
						奖励名称[id] = 快捷给道具(id, "魔兽残卷", ygsj(3))
					elseif 奖励参数 <= 85 then
						奖励名称[id] = 快捷给道具(id, "灵饰洗练石", 1)
					else
						通知开关 = false

						if ygsj() >= 50 then
							奖励名称[id] = 快捷给道具(id, "上古锻造图策", (12 + ygsj(3)) * 10 + 5)
						else
							奖励名称[id] = 快捷给道具(id, "炼妖石", 155)
						end

						if ygsj() >= 50 then
							for i = 1, 1 do
								奖励名称[id] = 快捷给道具(id, "属性石", 1)
							end
						else
							for i = 1, 1 do
								奖励名称[id] = 快捷给道具(id, "资质丸", 1)
							end
						end

						奖励名称[id] = 快捷给道具(id, "坐骑内丹", 取随机数(2, 4))
					end

					if 通知开关 == true then
						广播消息({
							频道 = "xt",
							内容 = format("#S(三十六天罡星)#R/%s#Y经过一番激烈的战斗，最终战胜了#R%s#Y，因此获得了其奖励的#G/%s#Y" .. "#" .. 取随机数(1, 110), 玩家数据[id].角色.数据.名称, 任务数据[任务id].名称, 奖励名称[id])
						})
					end
				end
			end
		end
	end

	地图处理类:删除单位(任务数据[任务id].地图编号, 任务数据[任务id].单位编号)

	任务数据[任务id] = nil
end

function 任务处理类:开启妖王(id)
	local 地图 = 1092

	for n = 1, 取随机数(1, 10) do
		local 任务id = id .. "_" .. n .. "_" .. 取随机数(8888, 9999) .. "_205_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999)
		随机序列 = 随机序列 + 1
		local xy = 地图处理类.地图坐标[地图]:取随机点()
		local 名称 = "避世老妖"
		local 模型 = "炎魔神"
		local 随机参数 = ygsj()

		if 随机参数 <= 30 then
			名称 = "冥府妖王"
			模型 = "鬼将"
		elseif 随机参数 <= 60 then
			名称 = "猪仙大圣"
			模型 = "净瓶女娲"
		end

		任务数据[任务id] = {
			类型 = 205,
			结束 = 1800,
			id = 任务id,
			起始 = os.time(),
			玩家id = id,
			队伍组 = {},
			名称 = 名称,
			模型 = 模型,
			x = xy.x,
			y = xy.y,
			地图编号 = 地图,
			地图名称 = 取地图名称(地图)
		}

		地图处理类:添加单位(任务id)
	end

	广播消息({
		频道 = "xt",
		内容 = format("#Y%s#W挖宝时候一不小心在#R妖王#W脑袋上敲出了一个大包，妖王气得正在#G%s#W寻衅闹事，各路英雄快前往平乱啊！", 玩家数据[id].角色.数据.名称, 取地图名称(地图))
	})
end

function 任务处理类:开启宝藏山()
	宝藏山数据 = {
		间隔 = 10,
		开关 = true,
		起始 = os.time(),
		刷新 = os.time()
	}

	广播消息({
		频道 = "xt",
		内容 = "#G/宝藏山活动已经开启，各位玩家可以前往宝象国#R/土地公公#G/处参加宝藏山活动#32"
	})
end

function 任务处理类:进入宝藏山(id)
	if 玩家数据[id].队伍 ~= 0 then
		常规提示(id, "#Y宝藏山不允许组队进入")

		return
	elseif 玩家数据[id].角色.数据.等级 < 69 then
		常规提示(id, "#Y低于69级的玩家无法进入宝藏山")

		return
	end

	local xy = 地图处理类.地图坐标[5001]:取随机点()

	地图处理类:跳转地图(id, 5001, xy.x, xy.y)

	local 人数 = 地图处理类:取地图人数(5001)

	地图处理类:当前消息广播1(5001, "#G当前共有#R" .. 人数 .. "#G名玩家在宝藏山内寻宝")

	if 宝藏山数据[id] == nil then
		宝藏山数据[id] = {
			小宝箱 = 0,
			大宝箱 = 0
		}
	end
end

function 任务处理类:宝藏山刷出宝箱()
	local 人数 = 地图处理类:取地图人数(5001)
	local 小宝箱 = 人数 * 4
	local 大宝箱 = 人数 * 2
	宝藏山数据.小宝箱 = 小宝箱
	宝藏山数据.大宝箱 = 大宝箱
	local 地图 = 5001

	for n = 1, 小宝箱 do
		local 任务id = "_" .. n .. "_" .. 取随机数(1999, 11111) .. "_203_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999) .. "_" .. 5001 + n
		随机序列 = 随机序列 + 1
		local xy = 地图处理类.地图坐标[地图]:取随机点()
		任务数据[任务id] = {
			名称 = "小宝箱",
			类型 = 203,
			结束 = 120,
			模型 = "宝箱",
			id = 任务id,
			起始 = os.time(),
			玩家id = id,
			队伍组 = {},
			x = xy.x,
			y = xy.y,
			地图编号 = 地图,
			地图名称 = 取地图名称(地图)
		}

		地图处理类:添加单位(任务id)
	end

	for n = 1, 大宝箱 do
		local 任务id = "_" .. n .. "_" .. 取随机数(1999, 11111) .. "_204_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999) .. "_" .. 5001 + n
		随机序列 = 随机序列 + 1
		local xy = 地图处理类.地图坐标[地图]:取随机点()
		任务数据[任务id] = {
			名称 = "大宝箱",
			类型 = 204,
			结束 = 120,
			模型 = "宝箱",
			id = 任务id,
			起始 = os.time(),
			玩家id = id,
			队伍组 = {},
			x = xy.x,
			y = xy.y,
			地图编号 = 地图,
			地图名称 = 取地图名称(地图)
		}

		地图处理类:添加单位(任务id)
	end

	地图处理类:当前消息广播1(5001, "#G当前共有#R" .. 人数 .. "#G名玩家在宝藏山内寻宝。")
	地图处理类:当前消息广播1(5001, format("#G一道金光闪过，#R%s#G个小宝箱和#R%s#G个大宝箱散落在场景内的各个角落。宝箱将在2分钟后自动消失，请赶快寻找哟。本次活动中已开启过10个小宝箱或5个大宝箱的玩家将无法再开启对应的宝箱。", 小宝箱, 大宝箱))

	if os.time() - 宝藏山数据.起始 >= 999999 then
		宝藏山数据.间隔 = 999999

		地图处理类:当前消息广播1(5001, "#R本次活动宝箱已经全部投放，3分钟后场景内的所有玩家将自动被传送出去。")
	else
		地图处理类:当前消息广播1(5001, "#R3分钟后将投放下一批宝箱。")
	end
end

function 任务处理类:刷新迷宫小怪()
	for n = 1, 20 do
		local 地图 = 1600 + n

		if n >= 10 then
			local sl = 15

			if n == 20 then
				sl = 30
			end

			for i = 1, sl do
				local 任务id = "_" .. n .. "_" .. 取随机数(1999, 11111) .. "_202_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999) .. "_" .. 5001 + n .. "_" .. i
				随机序列 = 随机序列 + 1
				local xy = 地图处理类.地图坐标[地图]:取随机点()
				任务数据[任务id] = {
					名称 = "迷宫宝箱",
					类型 = 202.1,
					结束 = 600,
					模型 = "宝箱",
					id = 任务id,
					起始 = os.time(),
					玩家id = id,
					队伍组 = {},
					x = xy.x,
					y = xy.y,
					地图编号 = 地图,
					地图名称 = 取地图名称(地图)
				}

				地图处理类:添加单位(任务id)
			end
		end

		if n <= 19 then
			for i = 1, 20 do
				local 任务id = i .. "_" .. n .. "_" .. 取随机数(1999, 11111) .. "_202_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999) .. "_" .. 1600 + n .. "_" .. i
				随机序列 = 随机序列 + 1
				local xy = 地图处理类.地图坐标[地图]:取随机点()
				local 模型 = 取随机怪(1, 60)
				任务数据[任务id] = {
					名称 = "迷宫小妖",
					行走开关 = true,
					结束 = 600,
					事件 = "明雷",
					类型 = 202,
					id = 任务id,
					起始 = os.time(),
					玩家id = id,
					队伍组 = {},
					模型 = 模型[2],
					x = xy.x,
					y = xy.y,
					地图编号 = 地图,
					序列 = n,
					地图名称 = 取地图名称(地图)
				}

				地图处理类:添加单位(任务id)
			end
		end
	end
end

function 任务处理类:刷出比武传送人()
	local 地图范围 = {
		6003,
		6004,
		6005,
		6006
	}
	local 地图 = 地图范围[取随机数(1, #地图范围)]
	local xy = 地图处理类.地图坐标[地图]:取随机点()
	local 提示名称 = ""
	local 结束时间 = 1800

	for n = 1, #地图范围 do
		local 地图 = 地图范围[n]

		for i = 1, 1 do
			local 任务id = n .. "_" .. i .. "_" .. 取随机数(11, 88) .. "_5136_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999)
			随机序列 = 随机序列 + 1
			local 名称 = "比武场传送人"
			local xy = 地图处理类.地图坐标[地图]:取随机点()
			任务数据[任务id] = {
				x = 17,
				y = 54,
				方向 = 3,
				类型 = 5136,
				模型 = "男人_将军",
				id = 任务id,
				起始 = os.time(),
				结束 = 结束时间,
				玩家id = id,
				队伍组 = {},
				名称 = 名称,
				地图编号 = 地图,
				地图名称 = 取地图名称(地图)
			}

			地图处理类:添加单位(任务id)
		end
	end
end

function 任务处理类:开启游戏比赛()
	for n = 1, 20 do
		local 任务id = n .. "_" .. 取随机数(999, 1111) .. "_108_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999)
		随机序列 = 随机序列 + 1
		local 地图 = Q_游泳数据[n].z
		local 结束时间 = 36000
		任务数据[任务id] = {
			类型 = 108,
			模型 = "雨师",
			称谓 = "游泳比赛裁判",
			id = 任务id,
			起始 = os.time(),
			结束 = 结束时间,
			玩家id = id,
			队伍组 = {},
			名称 = n .. "号裁判",
			x = Q_游泳数据[n].x,
			y = Q_游泳数据[n].y,
			方向 = Q_游泳数据[n].f,
			地图编号 = 地图,
			序列 = n,
			地图名称 = 取地图名称(地图)
		}

		地图处理类:添加单位(任务id)
	end

	广播消息({
		频道 = "xt",
		内容 = "#G/游泳比赛活动已经开启，各位玩家可以前往傲来国#R/报名官#G/处参加游泳比赛#32"
	})

	游泳开关 = true
	游戏数据 = {}
end

function 任务处理类:添加押镖任务(id)
	if 玩家数据[id].角色.数据.地图数据.编号 ~= 1024 then
		__S服务:输出("玩家" .. id .. " 非法使用外挂警告！！！")
		写配置("./ip封禁.ini", "ip", 玩家数据[id].ip, 1)
		写配置("./ip封禁.ini", "ip", 玩家数据[id].ip .. " 非法使用外挂,玩家ID:" .. id, 1)
		发送数据(玩家数据[id].连接id, 998, "请注意你的角色异常！已经对你进行封IP")
		__S服务:连接退出(玩家数据[id].连接id)

		return 0
	end

	if 玩家数据[id].队伍 ~= 0 then
		添加最后对话(id, "请单人来接取押镖任务！")

		return
	end

	local 任务id = id .. "_" .. 取随机数(88, 1111) .. "_300_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999)
	任务数据[任务id] = {
		类型 = 300,
		结束 = 9999999,
		领取人id = {
			id
		},
		id = 任务id,
		起始 = os.time(),
		玩家id = id,
		次数 = 押镖数据[id],
		队伍组 = {}
	}
	local 序列 = 取随机数(1, #Q_押镖数据)
	任务数据[任务id].人物 = Q_押镖数据[序列].名称
	任务数据[任务id].地图编号 = Q_押镖数据[序列].地图
	任务数据[任务id].地图编号 = 任务数据[任务id].地图编号
	任务数据[任务id].坐标 = 取假人表1(任务数据[任务id].地图编号, nil, 任务数据[任务id].人物)

	添加最后对话(id, format("请帮我把镖银送给#Y%s#W的#R%s#W，事出紧急，切勿在路上耽搁。当前#R第%s镖", 取地图名称(任务数据[任务id].地图编号), 任务数据[任务id].人物, 任务数据[任务id].次数))
	玩家数据[id].角色:添加任务(任务id)

	玩家数据[id].角色.数据.跑镖遇怪时间 = os.time() + 取随机数(30, 120)
end

function 任务处理类:完成押镖任务(任务id, id, 地图)
	if 任务数据[任务id] == nil then
		return
	end

	if 玩家数据[id].角色.数据.地图数据.编号 ~= 地图 then
		__S服务:输出("玩家" .. id .. " 非法使用外挂警告！！！")
		写配置("./ip封禁.ini", "ip", 玩家数据[id].ip, 1)
		写配置("./ip封禁.ini", "ip", 玩家数据[id].ip .. " 非法使用外挂,玩家ID:" .. id, 1)
		发送数据(玩家数据[id].连接id, 998, "请注意你的角色异常！已经对你进行封IP")
		__S服务:连接退出(玩家数据[id].连接id)

		return 0
	end

	local 奖励系数 = 1
	local 押镖银子 = 50000
	local 押镖储备 = 50000

	if 押镖数据[id] == nil then
		押镖数据[id] = 0
	end

	添加活动次数(id, "押镖")
	玩家数据[id].角色:添加银子(押镖银子 * 奖励系数 * 3, "押镖", 1)
	玩家数据[id].角色:添加储备(押镖储备 * 奖励系数 * 3, "押镖")

	活跃数据[id].活跃度 = 活跃数据[id].活跃度 + 2
	玩家数据[id].角色.数据.累积活跃.当前积分 = 玩家数据[id].角色.数据.累积活跃.当前积分 + 2

	常规提示(id, "#Y/你获得了2点活跃度\n(#G用于领取奖励和签到#)")

	if ygsj() <= 5 then
		奖励名称[id] = 快捷给道具(id, "制造指南书", 取随机数(10, 11))

		广播消息({
			频道 = "xt",
			内容 = format("#S(押镖)#R/%s#Y完成押镖运气包爆棚，#Y因此获得了#G%s", 玩家数据[id].角色.数据.名称, 奖励名称[id])
		})
	end

	if 押镖数据[id] < 8 then
		if ygsj() <= 5 then
			奖励名称[id] = 快捷给道具(id, "鬼谷子", 1)

			广播消息({
				频道 = "xt",
				内容 = format("#S(押镖任务)#R/%s#Y在押送#G%s镖银#Y途中表现突出获得了郑镖头的赏识，因此获得了郑镖头额外奖励的#G/%s#Y", 玩家数据[id].角色.数据.名称, "普通", 奖励名称[id])
			})
		end
	elseif 取随机数(1, 70) <= 10 then
		奖励名称[id] = 快捷给道具(id, "鬼谷子", 1)

		广播消息({
			频道 = "xt",
			内容 = format("#S(押镖任务)#R/%s#Y在押送#G%s镖银#Y途中表现突出获得了郑镖头的赏识，因此获得了郑镖头额外奖励的#G/%s#Y", 玩家数据[id].角色.数据.名称, "普通", 奖励名称[id])
		})
	end

	押镖数据[id] = 押镖数据[id] + 1
	任务数据[任务id] = nil

	玩家数据[id].角色:取消任务(任务id)

	if 成就数据[id].押镖 == nil then
		成就数据[id].押镖 = 0
	end

	成就数据[id].押镖 = 成就数据[id].押镖 + 1

	if 成就数据[id].押镖 == 1 then
		local 成就提示 = "再世镖王"
		local 成就提示1 = "完成1次了押镖"

		if ygsj() <= 50 then
			奖励名称[id] = 快捷给道具(id, "资质丸", 1)
		else
			奖励名称[id] = 快捷给道具(id, "属性石", 1)
		end

		发送数据(玩家数据[id].连接id, 149, {
			内容 = 成就提示,
			内容1 = 成就提示1
		})
	elseif 成就数据[id].押镖 == 1000 then
		local 成就提示 = "再世镖王"
		local 成就提示1 = "完成1000次了押镖"
		成就数据[id].成就点 = 成就数据[id].成就点 + 1

		常规提示(id, "#Y/恭喜你获得了1点成就")
		发送数据(玩家数据[id].连接id, 149, {
			内容 = 成就提示,
			内容1 = 成就提示1
		})
		玩家数据[id].角色:添加称谓(id, "快递小哥")

		if ygsj() <= 50 then
			奖励名称[id] = 快捷给道具(id, "资质丸", 1)
		else
			奖励名称[id] = 快捷给道具(id, "属性石", 1)
		end
	end
end

function 任务处理类:跑镖遇怪(id, 任务)
	for n, v in pairs(玩家数据) do
		if 玩家数据[n].角色:取任务(300) ~= 0 and 玩家数据[n].战斗 == 0 and 玩家数据[n].角色.数据.跑镖遇怪时间 <= os.time() then
			战斗准备类:创建战斗(n, 110038, 0)
		end
	end
end

function 任务处理类:添加镖王任务(id, 难度)
	if 玩家数据[id].队伍 == 0 then
		添加最后对话(id, "此活动最少需要五人组队参加。")

		return
	elseif 取队伍人数(id) < 3 then
		添加最后对话(id, "此活动最少需要五人组队参加。")

		return
	elseif 取等级要求(id, 60) == false then
		添加最后对话(id, "此活动要求最低等级不能小于60级，队伍中有成员等级未达到此要求。")

		return
	elseif 取队伍任务(玩家数据[id].队伍, 208) then
		常规提示(id, "#Y/队伍中已有队员领取过此任务了")

		return
	elseif 活动次数查询(id, "镖王押镖") == false then
		return
	elseif 镖王活动.开关 == false then
		添加最后对话(id, "当前不是比赛时间。")

		return
	end

	local 任务id = id .. "_" .. 取随机数(999, 1111) .. "_208_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999) .. "_" .. 难度
	随机序列 = 随机序列 + 1
	local 地图 = 镖王数据[1].地图
	local 结束时间 = 3600
	local x临时人物队伍 = {}

	if 玩家数据[id].队伍 ~= nil and 玩家数据[id].队伍 ~= 0 then
		for i = 1, #队伍数据[玩家数据[id].队伍].成员数据 do
			if 队伍数据[玩家数据[id].队伍].成员数据[i] ~= nil then
				x临时人物队伍[#x临时人物队伍 + 1] = 队伍数据[玩家数据[id].队伍].成员数据[i]
			end
		end
	end

	任务数据[任务id] = {
		序列 = 1,
		类型 = 208,
		模型 = "护卫",
		名称 = "镖师",
		称谓 = "镖王活动",
		领取人id = x临时人物队伍,
		id = 任务id,
		起始 = os.time(),
		结束 = 结束时间,
		玩家id = id,
		队伍组 = {},
		x = 镖王数据[1].x,
		y = 镖王数据[1].y,
		方向 = 镖王数据[1].z,
		地图编号 = 地图,
		难度 = 难度,
		完成 = {
			1,
			2,
			3,
			4,
			5,
			6
		},
		地图名称 = 取地图名称(地图)
	}
	local 队伍id = 玩家数据[id].队伍

	for n = 1, #队伍数据[队伍id].成员数据 do
		local 临时id = 队伍数据[队伍id].成员数据[n]
		任务数据[任务id].队伍组[#任务数据[任务id].队伍组 + 1] = 临时id

		玩家数据[临时id].角色:添加任务(任务id)
		发送数据(玩家数据[临时id].连接id, 1501, {
			名称 = "郑镖头",
			模型 = "男人_镖头",
			对话 = format("请带着这批#Y%s镖银#W立即前往#Y%s(%s,%s)#W处的镖师报道。", 任务数据[任务id].难度, 任务数据[任务id].地图名称, 任务数据[任务id].x, 任务数据[任务id].y)
		})
	end
end

function 任务处理类:完成镖王活动(任务id, id)
	if 任务数据[任务id] == nil then
		return
	end

	local 难度 = 任务数据[任务id].难度
	任务数据[任务id] = nil
	local 队伍id = 玩家数据[id].队伍

	for n = 1, #队伍数据[队伍id].成员数据 do
		if 队伍处理类:取是否助战(玩家数据[id].队伍, n) == 0 then
			local id = 队伍数据[队伍id].成员数据[n]

			玩家数据[id].角色:取消任务(任务id)
			添加活动次数(id, "镖王押镖")

			if 妖魔积分[id] == nil then
				妖魔积分[id] = {
					总计 = 0,
					当前 = 0,
					使用 = 0
				}
			end

			妖魔积分[id].当前 = 妖魔积分[id].当前 + 30
			妖魔积分[id].总计 = 妖魔积分[id].总计 + 30

			常规提示(id, "#Y/你获得了30点妖魔积分(可用于兑换和幸运转盘抽奖)")

			活跃数据[id].活跃度 = 活跃数据[id].活跃度 + 30
			玩家数据[id].角色.数据.累积活跃.当前积分 = 玩家数据[id].角色.数据.累积活跃.当前积分 + 30
			local 经验加成 = 1
			local 银子加成 = 1

			if 难度 == "高级" then
				经验加成 = 1.3
				银子加成 = 1.25
			elseif 难度 == "珍贵" then
				经验加成 = 1.6
				银子加成 = 1.5
			end

			local 等级 = 玩家数据[id].角色.数据.等级
			local 经验 = qz(等级 * 1000 * 2 * 经验加成)
			local 银子 = qz(等级 * 1000 * 2 * 银子加成)

			玩家数据[id].角色:添加经验(经验, "镖王活动")
			玩家数据[id].角色:添加银子(银子, "镖王活动", 1)
			召唤兽添加经验(qz(经验 * 0.5), id, "镖王活动", self.地图等级)

			if 难度 == "普通" then
				添加仙玉(200, 玩家数据[id].账号, id, "镖王")

				local 奖励参数 = ygsj()

				if 奖励参数 <= 50 then
					奖励名称[id] = 快捷给道具(id, "九转金丹", 1)
				else
					奖励名称[id] = 快捷给道具(id, "修炼果", 1)
				end

				if ygsj() <= 30 then
					奖励名称[id] = 快捷给道具(id, "鬼谷子", 1)

					广播消息({
						频道 = "xt",
						内容 = format("#S(镖王大赛)#R/%s在押送#G%s镖银#Y途中表现突出获得了郑镖头的赏识，因此获得了郑镖头额外奖励的#G/%s#Y", 玩家数据[id].角色.数据.名称, 难度, 奖励名称[id])
					})
				end
			elseif 难度 == "高级" then
				添加仙玉(250, 玩家数据[id].账号, id, "高级镖王")

				local 奖励参数 = 取随机数(1, 95)

				if ygsj() <= 60 then
					奖励名称[id] = 快捷给道具(id, "鬼谷子", 1)

					广播消息({
						频道 = "xt",
						内容 = format("#S(镖王大赛)#R/%s在押送#G%s镖银#Y途中表现突出获得了郑镖头的赏识，因此获得了郑镖头额外奖励的#G/%s#Y", 玩家数据[id].角色.数据.名称, 难度, 奖励名称[id])
					})
				end

				if 奖励参数 <= 10 then
					奖励名称[id] = 快捷给道具(id, "未激活的符石", 1)

					广播消息({
						频道 = "xt",
						内容 = format("#S(镖王大赛)#R/%s#Y携带着#G%s镖银#Y历经千辛万难终于通过了所有镖师的考验，因此获得了郑镖头奖励的#G/%s#Y", 玩家数据[id].角色.数据.名称, 难度, 奖励名称[id])
					})
				elseif 奖励参数 <= 40 then
					奖励名称[id] = 快捷给道具(id, "符石卷轴", 取随机数(1, 5))

					广播消息({
						频道 = "xt",
						内容 = format("#S(镖王大赛)#R/%s#Y携带着#G%s镖银#Y历经千辛万难终于通过了所有镖师的考验，因此获得了郑镖头奖励的#G/%s#Y", 玩家数据[id].角色.数据.名称, 难度, 奖励名称[id])
					})
				elseif 奖励参数 <= 50 then
					奖励名称[id] = 快捷给道具(id, "高级魔兽要诀", 1)

					广播消息({
						频道 = "xt",
						内容 = format("#S(镖王大赛)#R/%s#Y携带着#G%s镖银#Y历经千辛万难终于通过了所有镖师的考验，因此获得了郑镖头奖励的#G/%s#Y", 玩家数据[id].角色.数据.名称, 难度, 奖励名称[id])
					})
				elseif 奖励参数 <= 60 then
					奖励名称[id] = 快捷给道具(id, "特赦令牌", 取随机数(1, 3))

					广播消息({
						频道 = "xt",
						内容 = format("#S(镖王大赛)#R/%s#Y携带着#G%s镖银#Y历经千辛万难终于通过了所有镖师的考验，因此获得了郑镖头奖励的#G/%s#Y", 玩家数据[id].角色.数据.名称, 难度, 奖励名称[id])
					})
				elseif 奖励参数 <= 80 then
					奖励名称[id] = 快捷给道具(id, "修炼果", 1)

					广播消息({
						频道 = "xt",
						内容 = format("#S(镖王大赛)#R/%s#Y携带着#G%s镖银#Y历经千辛万难终于通过了所有镖师的考验，因此获得了郑镖头奖励的#G/%s#Y", 玩家数据[id].角色.数据.名称, 难度, 奖励名称[id])
					})
				elseif 奖励参数 <= 95 then
					奖励名称[id] = 快捷给道具(id, "召唤兽内丹", 1)

					广播消息({
						频道 = "xt",
						内容 = format("#S(镖王大赛)#R/%s#Y携带着#G%s镖银#Y历经千辛万难终于通过了所有镖师的考验，因此获得了郑镖头奖励的#G/%s#Y", 玩家数据[id].角色.数据.名称, 难度, 奖励名称[id])
					})
				end
			elseif 难度 == "珍贵" then
				添加仙玉(300, 玩家数据[id].账号, id, "珍贵镖王")

				local 奖励参数 = ygsj()

				if ygsj() <= 80 then
					奖励名称[id] = 快捷给道具(id, "鬼谷子", 1)

					广播消息({
						频道 = "xt",
						内容 = format("#S(镖王大赛)#R/%s在押送#G%s镖银#Y途中表现突出获得了郑镖头的赏识，因此获得了郑镖头额外奖励的#G/%s#Y", 玩家数据[id].角色.数据.名称, 难度, 奖励名称[id])
					})
				end

				if 奖励参数 <= 10 then
					奖励名称[id] = 快捷给道具(id, "未激活的符石", 2)

					广播消息({
						频道 = "xt",
						内容 = format("#S(镖王大赛)#R/%s#Y携带着#G%s镖银#Y历经千辛万难终于通过了所有镖师的考验，因此获得了郑镖头奖励的#G/%s#Y", 玩家数据[id].角色.数据.名称, 难度, 奖励名称[id])
					})
				elseif 奖励参数 <= 40 then
					奖励名称[id] = 快捷给道具(id, "符石卷轴", 取随机数(1, 5))

					广播消息({
						频道 = "xt",
						内容 = format("#S(镖王大赛)#R/%s#Y携带着#G%s镖银#Y历经千辛万难终于通过了所有镖师的考验，因此获得了郑镖头奖励的#G/%s#Y", 玩家数据[id].角色.数据.名称, 难度, 奖励名称[id])
					})
				elseif 奖励参数 <= 50 then
					奖励名称[id] = 快捷给道具(id, "高级魔兽要诀", 1)

					广播消息({
						频道 = "xt",
						内容 = format("#S(镖王大赛)#R/%s#Y携带着#G%s镖银#Y历经千辛万难终于通过了所有镖师的考验，因此获得了郑镖头奖励的#G/%s#Y", 玩家数据[id].角色.数据.名称, 难度, 奖励名称[id])
					})
				elseif 奖励参数 <= 60 then
					奖励名称[id] = 快捷给道具(id, "特赦令牌", 取随机数(1, 5))

					广播消息({
						频道 = "xt",
						内容 = format("#S(镖王大赛)#R/%s#Y携带着#G%s镖银#Y历经千辛万难终于通过了所有镖师的考验，因此获得了郑镖头奖励的#G/%s#Y", 玩家数据[id].角色.数据.名称, 难度, 奖励名称[id])
					})
				elseif 奖励参数 <= 80 then
					奖励名称[id] = 快捷给道具(id, "高级召唤兽内丹", 1)

					广播消息({
						频道 = "xt",
						内容 = format("#S(镖王大赛)#R/%s#Y携带着#G%s镖银#Y历经千辛万难终于通过了所有镖师的考验，因此获得了郑镖头奖励的#G/%s#Y", 玩家数据[id].角色.数据.名称, 难度, 奖励名称[id])
					})
				elseif 奖励参数 <= 95 then
					奖励名称[id] = 快捷给道具(id, "召唤兽内丹", 1)

					广播消息({
						频道 = "xt",
						内容 = format("#S(镖王大赛)#R/%s#Y携带着#G%s镖银#Y历经千辛万难终于通过了所有镖师的考验，因此获得了郑镖头奖励的#G/%s#Y", 玩家数据[id].角色.数据.名称, 难度, 奖励名称[id])
					})
				end
			end
		end
	end
end

function 任务处理类:开启镖王活动()
	删除指定任务类型单位(207)

	for n = 1, 6 do
		local 任务id = n .. "_" .. 取随机数(999, 1111) .. "_207_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999)
		随机序列 = 随机序列 + 1
		local 地图 = 镖王数据[n].地图
		local 结束时间 = 99999
		任务数据[任务id] = {
			名称 = "镖师",
			类型 = 207,
			模型 = "护卫",
			称谓 = "镖王活动",
			id = 任务id,
			起始 = os.time(),
			结束 = 结束时间,
			玩家id = id,
			队伍组 = {},
			x = 镖王数据[n].x,
			y = 镖王数据[n].y,
			方向 = 镖王数据[n].z,
			地图编号 = 地图,
			序列 = n,
			地图名称 = 取地图名称(地图)
		}

		地图处理类:添加单位(任务id)
	end

	广播消息({
		频道 = "xt",
		内容 = "#G/镖王活动已经开启，各位玩家可以前往长风镖局的#R/郑镖头#G/处报名参加#32"
	})

	镖王活动 = {
		开关 = true
	}
end

function 任务处理类:刷出星宿()
	local 任务id = 取随机数(11, 88) .. "_104_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999)
	随机序列 = 随机序列 + 1
	local 地图范围 = DeepCopy(刷怪地图范围.二十八星宿)
	local 地图 = 地图范围[取随机数(1, #地图范围)]
	local xy = 地图处理类.地图坐标[地图]:取随机点()
	local 结束时间 = 3600
	任务数据[任务id] = {
		行走开关 = true,
		类型 = 104,
		模型 = "天兵",
		id = 任务id,
		起始 = os.time(),
		结束 = 结束时间,
		玩家id = id,
		队伍组 = {},
		名称 = Q_星宿名称[取随机数(1, #Q_星宿名称)],
		x = xy.x,
		y = xy.y,
		地图编号 = 地图,
		地图名称 = 取地图名称(地图)
	}

	地图处理类:添加单位(任务id)
	广播消息({
		频道 = "xt",
		内容 = format("#W/听闻凡间多有能人异士，玉皇大帝特派二十八星君之一的#R/%s#W/下凡至#G/%s#W/附近搜寻有仙缘之人。凡通过星君考验者，必将重重有赏#77", 任务数据[任务id].名称, 取地图名称(地图))
	})
end

function 任务处理类:刷出妖魔鬼怪()
	local 地图范围 = DeepCopy(刷怪地图范围.妖魔鬼怪)
	local 地图 = 地图范围[取随机数(1, #地图范围)]
	local xy = 地图处理类.地图坐标[地图]:取随机点()
	local 提示名称 = ""
	local 结束时间 = 1200

	for n = 1, #地图范围 do
		if n == #地图范围 then
			提示名称 = 提示名称 .. 取地图名称(地图范围[n])
		else
			提示名称 = 提示名称 .. 取地图名称(地图范围[n]) .. "、"
		end

		local 数量 = 取随机数(20, 40)
		local 地图 = 地图范围[n]

		for i = 1, 数量 do
			local 任务id = n .. "_" .. i .. "_" .. 取随机数(11, 88) .. "_105_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999)
			随机序列 = 随机序列 + 1
			local 名称 = "妖魔"
			local 模型 = {
				"吸血鬼",
				"幽灵",
				"鬼将"
			}

			if ygsj() <= 50 then
				名称 = "鬼怪"
				模型 = {
					"僵尸",
					"野鬼"
				}
			end

			local xy = 地图处理类.地图坐标[地图]:取随机点()
			任务数据[任务id] = {
				行走开关 = true,
				类型 = 105,
				id = 任务id,
				起始 = os.time(),
				结束 = 结束时间,
				玩家id = id,
				队伍组 = {},
				名称 = 名称,
				模型 = 模型[取随机数(1, #模型)],
				x = xy.x,
				y = xy.y,
				地图编号 = 地图,
				地图名称 = 取地图名称(地图)
			}

			地图处理类:添加单位(任务id)
		end
	end

	广播消息({
		频道 = "xt",
		内容 = format("#R一群#Y妖魔鬼怪#R冲破了仙界封印，来到了#G/%s#R/作恶，还请各位英雄侠士赶紧去降服它们。", 提示名称)
	})
end

function 任务处理类:刷出知了王()
	local 地图范围 = DeepCopy(刷怪地图范围.知了王)
	local 地图 = 地图范围[取随机数(1, #地图范围)]
	local xy = 地图处理类.地图坐标[地图]:取随机点()
	local 提示名称 = ""
	local 结束时间 = 1800
	local 数量 = 取随机数(8, 16)

	for i = 1, 数量 do
		local 任务id = "_" .. i .. "_" .. 取随机数(11, 88) .. "_105_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999)
		随机序列 = 随机序列 + 1
		local xy = 地图处理类.地图坐标[地图]:取随机点()
		任务数据[任务id] = {
			名称 = "知了王",
			行走开关 = true,
			类型 = 210,
			模型 = "知了王",
			id = 任务id,
			起始 = os.time(),
			结束 = 结束时间,
			玩家id = id,
			队伍组 = {},
			x = xy.x,
			y = xy.y,
			地图编号 = 地图,
			地图名称 = 取地图名称(地图)
		}

		地图处理类:添加单位(任务id)
	end

	广播消息({
		频道 = "xt",
		内容 = format("#W/一批知了王出现在了#G/%s#W/处捣乱，还请各位英雄侠士赶紧去降服它们。", 取地图名称(地图))
	})
end

function 任务处理类:添加精修时间(时间, 类型, id)
	if 三倍数据[id] == nil then
		三倍数据[id] = {
			冻结 = 0,
			可领 = 三倍可领 + 0,
			间隔 = os.time()
		}
	end

	if 玩家数据[id].角色.数据.等级 < 10 then
		发送数据(玩家数据[id].连接id, 1501, {
			名称 = "御林军",
			对话 = "你的等级尚未达到10级，无法领取精修时间。",
			模型 = "男人_马副将"
		})

		return
	end

	local 领取时间 = 0
	local 有效时间 = 0

	if 类型 == 1 then
		if 三倍数据[id].可领 <= 0 then
			发送数据(玩家数据[id].连接id, 1501, {
				名称 = "御林军",
				对话 = "你本日已经没有可领取的精修时间了，请明日再来。",
				模型 = "男人_马副将"
			})

			return
		elseif 三倍数据[id].可领 < 时间 then
			领取时间 = 三倍数据[id].可领
			三倍数据[id].可领 = 0
		else
			领取时间 = 时间
			三倍数据[id].可领 = 三倍数据[id].可领 - 时间
		end

		有效时间 = 领取时间 * 60
	end

	有效时间 = 有效时间 * 60

	if 玩家数据[id].角色:取任务(3) == 0 then
		local 任务id = id .. "_3_" .. os.time()
		local 结束时间 = 有效时间
		任务数据[任务id] = {
			类型 = 3,
			id = 任务id,
			起始 = os.time(),
			结束 = 结束时间,
			玩家id = id,
			队伍组 = {}
		}

		玩家数据[id].角色:添加任务(任务id)
	else
		任务数据[玩家数据[id].角色:取任务(3)].结束 = 任务数据[玩家数据[id].角色:取任务(3)].结束 + 有效时间
	end

	发送数据(玩家数据[id].连接id, 39)

	if 类型 == 1 then
		发送数据(玩家数据[id].连接id, 1501, {
			名称 = "御林军",
			模型 = "男人_马副将",
			对话 = "你成功领取了" .. 领取时间 .. "小时的精修时间，请赶快去杀敌吧。加油！"
		})
	end
end

function 任务处理类:添加摇钱树任务(id)
	local 任务id = id .. "_22_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(1, 999)
	任务数据[任务id] = {
		模型 = "摇钱树苗",
		阶段 = 0,
		名称 = "摇钱树",
		浇水 = 0,
		次数 = 0,
		计时 = 0,
		结束 = 3600,
		虫患 = false,
		类型 = 22,
		成功操作 = 0,
		操作 = false,
		除虫 = 0,
		施肥 = 0,
		id = 任务id,
		起始 = os.time(),
		玩家id = id,
		队伍组 = {},
		x = math.floor(玩家数据[id].角色.数据.地图数据.x / 20),
		y = math.floor(玩家数据[id].角色.数据.地图数据.y / 20),
		地图编号 = 玩家数据[id].角色.数据.地图数据.编号,
		地图名称 = 取地图名称(玩家数据[id].角色.数据.地图数据.编号),
		记录时间 = os.time(),
		等待时间 = os.time()
	}

	地图处理类:添加单位(任务id)
	玩家数据[id].角色:添加任务(任务id)
end

function 任务处理类:刷新摇钱树强盗(id, 任务)
	local 任务id = id .. "_24_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(1, 99)
	local 模型 = "强盗"
	local 名称 = "江湖大盗"
	local 地图 = 任务数据[任务].地图编号
	local xy = {
		x = 任务数据[任务].x + 10,
		y = 任务数据[任务].y + 10
	}
	任务数据[任务id] = {
		行走开关 = true,
		类型 = 24,
		结束 = 3600,
		id = 任务id,
		起始 = os.time(),
		玩家id = id,
		名称 = 名称 .. "(" .. 玩家数据[id].角色.数据.名称 .. ")",
		模型 = 模型,
		x = xy.x,
		y = xy.y,
		地图编号 = 地图,
		地图名称 = 取地图名称(地图),
		主任务 = 任务
	}
	任务数据[任务].刷出强盗 = 任务id

	地图处理类:添加单位(任务id)
	玩家数据[id].角色:添加任务(任务id)
end

function 任务处理类:添加摇钱树元宝任务(id, xy)
	for n = 1, 取随机数(1, 2) do
		local 任务id = n .. "_" .. id .. "_23_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999) .. "_" .. n
		local 坐标 = 地图处理类.地图坐标[玩家数据[id].角色.数据.地图数据.编号].寻路:最近坐标(xy)
		任务数据[任务id] = {
			名称 = "元宝",
			类型 = 23,
			结束 = 3600,
			模型 = "银子",
			id = 任务id,
			起始 = os.time(),
			玩家id = id,
			队伍组 = {},
			x = math.floor(坐标.x),
			y = math.floor(坐标.y),
			地图编号 = 玩家数据[id].角色.数据.地图数据.编号,
			地图名称 = 取地图名称(玩家数据[id].角色.数据.地图数据.编号)
		}

		地图处理类:添加单位(任务id)
	end
end

function 任务处理类:设置科举任务(id)
	if 玩家数据[id].角色:取任务(7) ~= 0 then
		添加最后对话(id, "你已经领取过该任务抓紧去完成吧！")

		return
	end

	local 任务id = id .. "_7_" .. os.time()
	local 结束时间 = 3600
	任务数据[任务id] = {
		类型 = 7,
		id = 任务id,
		起始 = os.time(),
		结束 = 结束时间,
		玩家id = id,
		队伍组 = {}
	}

	玩家数据[id].角色:添加任务(任务id)
	发送数据(玩家数据[id].连接id, 39)
	常规提示(id, "#Y/你参加了科举活动")
end

function 任务处理类:添加摄妖香(id)
	local 任务id = id .. "_9_" .. os.time()
	local 结束时间 = 21600
	任务数据[任务id] = {
		类型 = 9,
		id = 任务id,
		起始 = os.time(),
		结束 = 结束时间,
		玩家id = id,
		队伍组 = {}
	}

	玩家数据[id].角色:添加任务(任务id)
	发送数据(玩家数据[id].连接id, 39)
end

function 任务处理类:添加一倍经验(id)
	if 单机设置 then
		local rwid = 玩家数据[id].角色:取任务(2)

		if rwid == 0 then
			self:添加双倍(1, 1, id)
		else
			任务数据[rwid].结束 = 任务数据[rwid].结束 + 经验丹时间
		end

		rwid = 玩家数据[id].角色:取任务(3)

		if rwid == 0 then
			self:添加精修时间(1, 1, id)
		else
			任务数据[rwid].结束 = 任务数据[rwid].结束 + 经验丹时间
		end
	end

	rwid = 玩家数据[id].角色:取任务(7756)

	if rwid ~= 0 then
		任务数据[rwid].结束 = 任务数据[rwid].结束 + 经验丹时间
	else
		local 任务id = id .. "_7756_" .. os.time()
		local 结束时间 = 经验丹时间
		任务数据[任务id] = {
			类型 = 7756,
			id = 任务id,
			起始 = os.time(),
			结束 = 结束时间,
			玩家id = id,
			队伍组 = {}
		}

		玩家数据[id].角色:添加任务(任务id)
		发送数据(玩家数据[id].连接id, 39)
	end
end

function 任务处理类:添加双倍经验(id)
	local 任务id = id .. "_7755_" .. os.time()
	local 结束时间 = 经验丹时间
	任务数据[任务id] = {
		类型 = 7755,
		id = 任务id,
		起始 = os.time(),
		结束 = 结束时间,
		玩家id = id,
		队伍组 = {}
	}

	玩家数据[id].角色:添加任务(任务id)
	发送数据(玩家数据[id].连接id, 39)
end

function 任务处理类:添加十倍经验(id)
	local 任务id = id .. "_7757_" .. os.time()
	local 结束时间 = 经验丹时间
	任务数据[任务id] = {
		类型 = 7757,
		id = 任务id,
		起始 = os.time(),
		结束 = 结束时间,
		玩家id = id,
		队伍组 = {}
	}

	玩家数据[id].角色:添加任务(任务id)
	发送数据(玩家数据[id].连接id, 39)
end

function 任务处理类:设置赏金任务(id)
	if 玩家数据[id].角色:取任务(6) ~= 0 then
		添加最后对话(id, "你有了该任务了")

		return
	end

	local 任务id = id .. "_6_" .. os.time()
	local 结束时间 = 1e+17
	local 数量 = 10
	任务数据[任务id] = {
		类型 = 6,
		id = 任务id,
		起始 = os.time(),
		结束 = 结束时间,
		玩家id = id,
		队伍组 = {},
		数量 = 数量
	}

	玩家数据[id].角色:添加任务(任务id)
	发送数据(玩家数据[id].连接id, 39)
	常规提示(id, "#Y/你获得了赏金任务")
	发送数据(玩家数据[id].连接id, 1501, {
		名称 = "皇宫护卫",
		对话 = "野外的怪物们十分不安分，老是袭击过往的村民，还请你去教训教训它们，让它们能安分守己些。",
		模型 = "护卫"
	})
end

function 任务处理类:设置新手任务(id)
	if 玩家数据[id].角色:取任务(66) ~= 0 then
		添加最后对话(id, "你有了该任务了")

		return
	end

	local 任务id = id .. "_66_" .. os.time()
	local 结束时间 = 1e+17
	local 数量 = 10
	任务数据[任务id] = {
		类型 = 66,
		id = 任务id,
		起始 = os.time(),
		结束 = 结束时间,
		玩家id = id,
		队伍组 = {},
		数量 = 数量
	}

	玩家数据[id].角色:添加任务(任务id)
	发送数据(玩家数据[id].连接id, 39)
	常规提示(id, "#Y/你获得了新手任务")
	发送数据(玩家数据[id].连接id, 1501, {
		名称 = "赵捕头",
		对话 = "野外的怪物们十分不安分，老是袭击过往的村民，还请你去教训教训它们，让它们能安分守己些。",
		模型 = "男人_衙役"
	})
end

function 任务处理类:设置打造160级装备任务(id, 临时类型, 级别, 序列, 属性, 制造者, 熟练度)
	local 任务id = id .. "_5_" .. os.time()
	local 结束时间 = 1e+17
	local 数量 = 1

	if 级别 <= 20 then
		数量 = 1
	elseif 级别 <= 30 then
		数量 = 2
	elseif 级别 <= 40 then
		数量 = 3
	elseif 级别 <= 50 then
		数量 = 5
	elseif 级别 <= 60 then
		数量 = 7
	elseif 级别 <= 70 then
		数量 = 9
	elseif 级别 <= 80 then
		数量 = 12
	elseif 级别 <= 90 then
		数量 = 16
	elseif 级别 <= 100 then
		数量 = 20
	elseif 级别 <= 110 then
		数量 = 24
	elseif 级别 == 160 then
		数量 = 50
	else
		数量 = 30
	end

	local 类型 = "装备"

	if 级别 == 160 then
		类型 = "160装备"
	end

	任务数据[任务id] = {
		类型 = 5,
		id = 任务id,
		起始 = os.time(),
		结束 = 结束时间,
		玩家id = id,
		队伍组 = {},
		名称 = 临时类型,
		级别 = 级别,
		序列 = 序列,
		元身属性 = 属性,
		石头 = 取强化石(),
		数量 = 数量,
		制造者 = 制造者,
		熟练度 = 熟练度,
		打造类型 = 类型
	}

	玩家数据[id].角色:添加任务(任务id)
	发送数据(玩家数据[id].连接id, 39)
	常规提示(id, "#Y/你获得了打造任务")
	发送数据(玩家数据[id].连接id, 1501, {
		名称 = 玩家数据[id].最后对话.名称,
		模型 = 玩家数据[id].最后对话.模型,
		对话 = format("你的#R/%s#W/已经在制作中了，但还欠缺%s块%s，你赶紧去寻找吧。找到后回来交给我就可以完成了。", 临时类型, 数量, 任务数据[任务id].石头)
	})
end

function 任务处理类:摆摊打造160级装备任务(id, 临时类型, 级别, 序列, 属性, 技能等级, 技能名称, 价格, 摊主名字, 打造模式)
	local 任务id = id .. "_5_" .. os.time()
	local 结束时间 = 1e+17
	local 数量 = 1

	if 级别 <= 20 then
		数量 = 1
	elseif 级别 <= 30 then
		数量 = 2
	elseif 级别 <= 40 then
		数量 = 3
	elseif 级别 <= 50 then
		数量 = 5
	elseif 级别 <= 60 then
		数量 = 7
	elseif 级别 <= 70 then
		数量 = 9
	elseif 级别 <= 80 then
		数量 = 12
	elseif 级别 <= 90 then
		数量 = 16
	elseif 级别 <= 100 then
		数量 = 20
	elseif 级别 <= 110 then
		数量 = 24
	elseif 级别 == 160 then
		数量 = 50
	else
		数量 = 30
	end

	local 类型 = "装备"

	if 级别 == 160 then
		类型 = "160装备"
	end

	任务数据[任务id] = {
		类型 = 5,
		id = 任务id,
		起始 = os.time(),
		结束 = 结束时间,
		玩家id = id,
		队伍组 = {},
		名称 = 临时类型,
		级别 = 级别,
		序列 = 序列,
		技能等级 = 技能等级,
		技能名称 = 技能名称,
		价格 = 价格,
		打造模式 = 打造模式,
		摊主名字 = 摊主名字,
		元身属性 = 属性,
		石头 = 取强化石(),
		数量 = 数量,
		打造类型 = 类型
	}

	玩家数据[id].角色:添加任务(任务id)
	发送数据(玩家数据[id].连接id, 39)
	常规提示(id, "#Y/你获得了打造任务")
	发送数据(玩家数据[id].连接id, 1501, {
		名称 = 玩家数据[id].最后对话.名称,
		模型 = 玩家数据[id].最后对话.模型,
		对话 = format("你的#R/%s#W/已经在制作中了，但还欠缺%s块%s，你赶紧去寻找吧。找到后回来交给我就可以完成了。", 临时类型, 数量, 任务数据[任务id].石头)
	})
end

function 任务处理类:设置打造装备任务(id, 临时类型, 级别, 序列, 百炼, 制造者, 熟练度)
	local 任务id = id .. "_5_" .. os.time()
	local 结束时间 = 1e+17
	local 数量 = 1

	if 级别 <= 20 then
		数量 = 1
	elseif 级别 <= 30 then
		数量 = 2
	elseif 级别 <= 40 then
		数量 = 3
	elseif 级别 <= 50 then
		数量 = 5
	elseif 级别 <= 60 then
		数量 = 7
	elseif 级别 <= 70 then
		数量 = 9
	elseif 级别 <= 80 then
		数量 = 12
	elseif 级别 <= 90 then
		数量 = 16
	elseif 级别 <= 100 then
		数量 = 20
	elseif 级别 <= 110 then
		数量 = 24
	else
		数量 = 30
	end

	任务数据[任务id] = {
		打造类型 = "装备",
		类型 = 5,
		id = 任务id,
		起始 = os.time(),
		结束 = 结束时间,
		玩家id = id,
		队伍组 = {},
		名称 = 临时类型,
		级别 = 级别,
		序列 = 序列,
		石头 = 取强化石(),
		数量 = 数量,
		百炼 = 百炼,
		制造者 = 制造者,
		熟练度 = 熟练度
	}

	玩家数据[id].角色:添加任务(任务id)
	发送数据(玩家数据[id].连接id, 39)
	常规提示(id, "#Y/你获得了打造任务")
	发送数据(玩家数据[id].连接id, 1501, {
		名称 = 玩家数据[id].最后对话.名称,
		模型 = 玩家数据[id].最后对话.模型,
		对话 = format("你的#R/%s#W/已经在制作中了，但还欠缺%s块%s，你赶紧去寻找吧。找到后回来交给我就可以完成了。", 临时类型, 数量, 任务数据[任务id].石头)
	})
end

function 任务处理类:设置熔合装备任务(id, 临时类型, 级别, 序列, 星级, 镶嵌类型, 分类)
	local 任务物品 = {
		"高级魔兽要诀",
		"高级召唤兽内丹",
		"怪物卡片",
		"物品"
	}
	local 任务id = id .. "_7758_" .. os.time()
	任务数据[任务id] = {
		打造类型 = "装备",
		结束 = 1e+17,
		完成 = false,
		类型 = 7758,
		id = 任务id,
		起始 = os.time(),
		玩家id = id,
		队伍组 = {},
		名称 = 临时类型,
		级别 = 级别,
		序列 = 序列,
		物品 = {},
		星级 = 星级,
		指定 = {},
		分类 = 分类,
		物品类型 = {},
		镶嵌类型 = 镶嵌类型,
		镶嵌等级 = #镶嵌类型
	}

	for i = 1, 3 do
		local 物品目标 = 取随机数(1, #任务物品)
		local 所需物品 = 任务物品[物品目标]

		table.remove(任务物品, 物品目标)

		任务数据[任务id].物品类型[#任务数据[任务id].物品类型 + 1] = 所需物品

		if 所需物品 == "高级魔兽要诀" then
			任务数据[任务id].物品[#任务数据[任务id].物品 + 1] = 取高级要诀()
		elseif 所需物品 == "高级召唤兽内丹" then
			任务数据[任务id].物品[#任务数据[任务id].物品 + 1] = 取内丹("高级")
		elseif 所需物品 == "怪物卡片" then
			local 数量 = 取随机数(1, 8)
			任务数据[任务id].物品[#任务数据[任务id].物品 + 1] = 变身卡范围[数量][取随机数(1, #变身卡范围[数量])]
		else
			local 随机 = 取随机数(1, 3)

			if 随机 == 1 then
				local 药品数据 = {
					"孔雀红",
					"鹿茸",
					"仙狐涎",
					"地狱灵芝",
					"六道轮回",
					"凤凰尾",
					"火凤之睛",
					"龙之心屑",
					"紫石英",
					"白露为霜",
					"熊胆",
					"血色茶花",
					"丁香水",
					"麝香"
				}
				任务数据[任务id].物品[#任务数据[任务id].物品 + 1] = 药品数据[取随机数(1, #药品数据)]
			elseif 随机 == 2 then
				local 五宝数据 = {
					"金刚石",
					"龙鳞",
					"定魂珠",
					"避水珠",
					"夜光珠"
				}
				任务数据[任务id].物品[#任务数据[任务id].物品 + 1] = 五宝数据[取随机数(1, #五宝数据)]
			else
				任务数据[任务id].物品[#任务数据[任务id].物品 + 1] = "超级金柳露"
			end
		end
	end

	玩家数据[id].角色:添加任务(任务id)
	发送数据(玩家数据[id].连接id, 39)
	常规提示(id, "#Y/你获得了熔合任务")
	发送数据(玩家数据[id].连接id, 1501, {
		名称 = "打铁炉",
		模型 = "物件_打铁炉",
		对话 = format("你的#R/%s#W已经在制作中了，但还欠缺#G%s#R(%s)#W以及#G%s#R(%s)#W以及#G%s#R(%s)#W，注意药品你要准备好1组才能完成该任务哟。", 临时类型, 任务数据[任务id].物品类型[1], 任务数据[任务id].物品[1], 任务数据[任务id].物品类型[2], 任务数据[任务id].物品[2], 任务数据[任务id].物品类型[3], 任务数据[任务id].物品[3])
	})
end

function 任务处理类:设置打造灵饰任务(id, 临时类型, 级别, 部位, 制造者, 熟练度)
	local 任务id = id .. "_5_" .. os.time()
	local 结束时间 = 1e+17
	local 数量 = 1

	if 级别 <= 20 then
		数量 = 1
	elseif 级别 <= 30 then
		数量 = 2
	elseif 级别 <= 40 then
		数量 = 3
	elseif 级别 <= 50 then
		数量 = 5
	elseif 级别 <= 60 then
		数量 = 7
	elseif 级别 <= 70 then
		数量 = 9
	elseif 级别 <= 80 then
		数量 = 12
	elseif 级别 <= 90 then
		数量 = 16
	elseif 级别 <= 100 then
		数量 = 20
	elseif 级别 <= 110 then
		数量 = 24
	else
		数量 = 30
	end

	任务数据[任务id] = {
		打造类型 = "灵饰",
		类型 = 5,
		id = 任务id,
		起始 = os.time(),
		结束 = 结束时间,
		玩家id = id,
		队伍组 = {},
		名称 = 临时类型,
		级别 = 级别,
		部位 = 部位,
		石头 = 取强化石(),
		数量 = 数量,
		制造者 = 制造者,
		熟练度 = 熟练度
	}

	玩家数据[id].角色:添加任务(任务id)
	发送数据(玩家数据[id].连接id, 39)
	常规提示(id, "#Y/你获得了打造任务")
	发送数据(玩家数据[id].连接id, 1501, {
		名称 = 玩家数据[id].最后对话.名称,
		模型 = 玩家数据[id].最后对话.模型,
		对话 = format("你的#R/%s#W/已经在制作中了，但还欠缺%s块%s，你赶紧去寻找吧。找到后回来交给我就可以完成了。", 临时类型, 数量, 任务数据[任务id].石头)
	})
end

function 任务处理类:添加双倍(时间, 类型, id)
	if 双倍数据[id] == nil then
		双倍数据[id] = {
			冻结 = 0,
			可领 = 双倍可领 + 0,
			间隔 = os.time()
		}
	end

	if 双倍数据[id].冻结 ~= 0 and 类型 == 1 then
		发送数据(玩家数据[id].连接id, 1501, {
			名称 = "马副将",
			对话 = "请先恢复已经被冻结的双倍时间。",
			模型 = "男人_马副将"
		})

		return
	end

	local 领取时间 = 0
	local 有效时间 = 0

	if 类型 == 1 then
		if 双倍数据[id].可领 <= 0 then
			发送数据(玩家数据[id].连接id, 1501, {
				名称 = "马副将",
				对话 = "你本日已经没有可领取的双倍时间了，请明日再来。",
				模型 = "男人_马副将"
			})

			return
		elseif 双倍数据[id].可领 < 时间 then
			领取时间 = 双倍数据[id].可领
			双倍数据[id].可领 = 0
		else
			领取时间 = 时间
			双倍数据[id].可领 = 双倍数据[id].可领 - 时间
		end

		有效时间 = 领取时间 * 60
	else
		有效时间 = 时间
	end

	有效时间 = 有效时间 * 60

	if 玩家数据[id].角色:取任务(2) == 0 then
		local 任务id = id .. "_2_" .. os.time()
		local 结束时间 = 有效时间
		任务数据[任务id] = {
			类型 = 2,
			id = 任务id,
			起始 = os.time(),
			结束 = 结束时间,
			玩家id = id,
			队伍组 = {}
		}

		玩家数据[id].角色:添加任务(任务id)
	else
		任务数据[玩家数据[id].角色:取任务(2)].结束 = 任务数据[玩家数据[id].角色:取任务(2)].结束 + 有效时间
	end

	发送数据(玩家数据[id].连接id, 39)

	if 类型 == 1 then
		发送数据(玩家数据[id].连接id, 1501, {
			名称 = "马副将",
			模型 = "男人_马副将",
			对话 = "你成功领取了" .. 领取时间 .. "小时的双倍时间，请赶快去杀敌吧。加油！"
		})
	else
		发送数据(玩家数据[id].连接id, 1501, {
			名称 = "马副将",
			对话 = "已经帮您恢复了冻结的时间，请赶快去杀敌吧。加油！",
			模型 = "男人_马副将"
		})
	end
end

function 任务处理类:添加罗羹(id, 气血, 魔法)
	local 任务id = id .. "_10_" .. os.time()
	local 结束时间 = 120
	任务数据[任务id] = {
		类型 = 10,
		id = 任务id,
		起始 = os.time(),
		结束 = 结束时间,
		玩家id = id,
		气血 = 气血,
		魔法 = 魔法,
		队伍组 = {}
	}

	玩家数据[id].角色:添加任务(任务id)
	发送数据(玩家数据[id].连接id, 39)
end

function 任务处理类:添加助战变身(id, 编号)
	local rw列表 = 玩家数据[id].角色:取任务1(777)

	if rw列表 ~= false then
		for n = 1, #rw列表 do
			if 任务数据[rw列表[n]].编号 == 编号 then
				玩家数据[id].角色:取消任务(rw列表[n])
			end
		end
	end

	local 任务id = id .. "_777_" .. os.time()
	local 剧情等级 = 玩家数据[id].角色:取剧情技能等级("变化之术")
	local 结束时间 = 15 * (1 + 剧情等级) * 60
	任务数据[任务id] = {
		类型 = 777,
		id = 任务id,
		起始 = os.time(),
		结束 = 结束时间,
		玩家id = id,
		队伍组 = {},
		编号 = 编号
	}

	玩家数据[id].角色:添加任务(任务id)
end

function 任务处理类:添加变身(id, 变化之术)
	local 任务id = id .. "_1_" .. os.time()
	local 结束时间 = 15 * (1 + 变化之术) * 60
	任务数据[任务id] = {
		类型 = 1,
		id = 任务id,
		起始 = os.time(),
		结束 = 结束时间,
		玩家id = id,
		队伍组 = {}
	}

	玩家数据[id].角色:添加任务(任务id)
	发送数据(玩家数据[id].连接id, 39)
end

function 任务处理类:添加点化任务(id)
	local 任务id = id .. "_14_" .. os.time()
	local 结束时间 = 120
	任务数据[任务id] = {
		类型 = 14,
		id = 任务id,
		起始 = os.time(),
		结束 = 结束时间,
		玩家id = id,
		队伍组 = {}
	}

	玩家数据[id].角色:添加任务(任务id)
end

function 任务处理类:设置天庭叛逆(id)
	local 地图范围 = {
		1040,
		1173,
		1092,
		1091,
		1174,
		1210,
		1110
	}
	local x待发送数据 = {}

	for i = 1, #地图范围 do
		local 临时数量 = 取随机数(10, 20)
		local 地图 = 地图范围[i]
		x待发送数据[地图] = {}

		for n = 1, 临时数量 do
			local 任务id = 地图 .. "_128_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999) .. "_" .. n
			随机序列 = 随机序列 + 1
			local xy = 地图处理类.地图坐标[地图]:取随机点()
			local 模型范围 = {
				"持国巡守",
				"毗舍童子",
				"灵灯侍者",
				"般若天女",
				"真陀护法",
				"增长巡守",
				"金身罗汉",
				"曼珠沙华",
				"红萼仙子",
				"琴仙",
				"金铙僧",
				"灵鹤",
				"雾中仙",
				"大力金刚",
				"净瓶女娲",
				"律法女娲",
				"灵符女娲",
				"如意仙子",
				"巡游天神",
				"星灵仙子",
				"雨师",
				"天兵",
				"风伯"
			}
			local 模型 = 模型范围[取随机数(1, #模型范围)]
			local x称谓 = "天庭叛逆"
			任务数据[任务id] = {
				玩家id = 0,
				行走开关 = true,
				结束 = 1200,
				显示饰品 = true,
				事件 = "明雷活动",
				类型 = 128,
				id = 任务id,
				起始 = os.time(),
				队伍组 = {},
				名称 = 模型,
				模型 = 模型,
				等级 = 取随机数(1, 140),
				称谓 = x称谓,
				x = xy.x,
				y = xy.y,
				地图编号 = 地图,
				地图名称 = 取地图名称(地图)
			}

			table.insert(x待发送数据[地图], 地图处理类:批量添加单位(任务id))
		end
	end

	广播消息({
		频道 = "xt",
		内容 = format("#W/叛逆肆虐，一群可怕的天庭叛逆跑到了#Y/西梁女国、大唐境外、傲来国、长寿郊外、北俱芦洲、麒麟山、大唐国境#w各路英雄快去消灭它们吧#46")
	})

	for i = 1, #地图范围 do
		local 地图编号 = 地图范围[i]

		for n, v in pairs(地图处理类.地图玩家[地图编号]) do
			if 地图处理类:取同一地图(地图编号, id, n, 1) then
				发送数据(玩家数据[n].连接id, 1021, x待发送数据[地图编号])
			end
		end
	end

	x待发送数据 = nil
end

function 任务处理类:捣乱的水果(id)
	local 地图范围 = DeepCopy(刷怪地图范围.捣乱的水果)
	local 捣乱的水果等级 = {
		[1110.0] = 55,
		[1173.0] = 65,
		[1210.0] = 105,
		[1091.0] = 85,
		[1174.0] = 95,
		[1514.0] = 75,
		[1193.0] = 45,
		[1506.0] = 35
	}
	local x待发送数据 = {}

	for i = 1, #地图范围 do
		local 临时数量 = 取随机数(16, 30)
		local 地图 = 地图范围[i]
		x待发送数据[地图] = {}

		for n = 1, 临时数量 do
			local 任务id = 地图 .. "_129_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999) .. "_" .. n
			随机序列 = 随机序列 + 1
			local xy = 地图处理类.地图坐标[地图]:取随机点()
			local 模型范围 = {
				"泡泡",
				"超级泡泡",
				"超级泡泡"
			}
			local 模型名称范围 = {
				"腐烂的水果",
				"发霉的水果",
				"未熟的水果",
				"金黄的水果",
				"苦涩的水果",
				"成熟的水果",
				"青涩的水果",
				"火红的水果",
				"金色的水果",
				"美味的水果",
				"可口的水果"
			}

			if 捣乱的水果等级[地图] >= 95 then
				模型范围 = {
					"超级泡泡"
				}
				模型名称范围 = {
					"火红的水果",
					"金色的水果",
					"美味的水果",
					"可口的水果"
				}
			elseif 捣乱的水果等级[地图] >= 65 then
				模型范围 = {
					"泡泡",
					"超级泡泡"
				}
				模型名称范围 = {
					"金黄的水果",
					"苦涩的水果",
					"成熟的水果",
					"青涩的水果"
				}
			else
				模型范围 = {
					"泡泡"
				}
				模型名称范围 = {
					"腐烂的水果",
					"发霉的水果",
					"未熟的水果"
				}
			end

			local 名称模型 = 模型名称范围[取随机数(1, #模型名称范围)]
			local 模型 = 模型范围[取随机数(1, #模型范围)]
			local x称谓 = "调皮的水果"
			任务数据[任务id] = {
				玩家id = 0,
				行走开关 = true,
				结束 = 1200,
				显示饰品 = true,
				事件 = "明雷活动",
				类型 = 129,
				id = 任务id,
				起始 = os.time(),
				队伍组 = {},
				名称 = 名称模型,
				模型 = 模型,
				等级 = 捣乱的水果等级[地图],
				称谓 = x称谓,
				x = xy.x,
				y = xy.y,
				地图编号 = 地图,
				地图名称 = 取地图名称(地图)
			}

			table.insert(x待发送数据[地图], 地图处理类:批量添加单位(任务id))
		end
	end

	广播消息({
		频道 = "xt",
		内容 = format("#W/水果肆虐，一群可怕的捣乱的水果跑到了#Y/东海湾、江南野外、大唐国境、大唐境外、长寿郊外、花果山、北俱芦洲、麒麟山#w各路英雄快去消灭它们吧#46")
	})

	for i = 1, #地图范围 do
		local 地图编号 = 地图范围[i]

		for n, v in pairs(地图处理类.地图玩家[地图编号]) do
			if 地图处理类:取同一地图(地图编号, id, n, 1) then
				发送数据(玩家数据[n].连接id, 1021, x待发送数据[地图编号])
			end
		end
	end

	x待发送数据 = {}
end

function 任务处理类:设置青龙任务(id, 自动挂机)
	if 自动挂机 ~= nil then
		玩家数据[id].最后对话 = {
			名称 = "青龙总管",
			模型 = "男人_兰虎"
		}
	end

	if 帮派处理类:取是否有帮派(id) ~= true then
		return
	elseif 玩家数据[id].角色:取任务(301) ~= 0 then
		添加最后对话(id, "少侠身上已经任务，请先完成任务再来！")

		return
	elseif 活动次数查询(id, "青龙任务") == false then
		return
	elseif 玩家数据[id].队伍 ~= 0 then
		添加最后对话(id, "组队状态下无法接任务！")

		return
	end

	local 任务id = id .. "_" .. 取随机数(88, 1111) .. "_301_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999)
	self.随机数字 = ygsj()
	local 任务分类 = 1

	if self.随机数字 <= 35 then
		任务分类 = 1
	elseif self.随机数字 <= 55 then
		任务分类 = 2
	elseif self.随机数字 <= 80 then
		任务分类 = 3
	else
		任务分类 = 4
	end

	if 自动挂机 ~= nil then
		if ygsj() <= 自动任务找人概率 then
			任务分类 = 1
		else
			任务分类 = 4
		end
	end

	任务数据[任务id] = {
		类型 = 301,
		结束 = 9999999,
		领取人id = {
			id
		},
		id = 任务id,
		起始 = os.time(),
		玩家id = id,
		队伍组 = {},
		分类 = 任务分类,
		帮派总管 = 玩家数据[id].最后对话.名称
	}

	if 任务分类 == 1 then
		local 序列 = 取随机数(1, #Q_随机人物)
		任务数据[任务id].人物 = Q_随机人物[序列].名称[取随机数(1, #Q_随机人物[序列].名称)]
		任务数据[任务id].地图编号 = Q_随机人物[序列].地图

		添加最后对话(id, format("请帮我将这封书信送给#Y%s#W的#R%s#W，事出紧急，切勿在路上耽搁。", 取地图名称(任务数据[任务id].地图编号), 任务数据[任务id].人物))
	elseif 任务分类 == 2 then
		self.随机药品 = Q_随机药品[取随机数(1, #Q_随机药品)]
		任务数据[任务id].药品 = self.随机药品

		添加最后对话(id, format("近日物资紧缺，请你前寻找#Y%s#W，事出紧急，切勿在路上耽搁。", 任务数据[任务id].药品))
	elseif 任务分类 == 3 then
		self.随机烹饪 = Q_随机烹饪[取随机数(1, #Q_随机烹饪)]
		任务数据[任务id].烹饪 = self.随机烹饪

		添加最后对话(id, format("近日物资紧缺，请你前寻找#Y%s#W，事出紧急，切勿在路上耽搁。", 任务数据[任务id].烹饪))
	else
		任务数据[任务id].巡逻 = 0

		添加最后对话(id, format("最近常有敌对门派探子在长安城内出现，还请你在四周巡逻一番。"))
	end

	玩家数据[id].角色:添加任务(任务id)

	return true
end

function 任务处理类:完成青龙任务(任务id, id, 类型)
	if 任务数据[任务id] == nil or 任务数据[任务id].分类 ~= 类型 then
		常规提示(id, "#Y/你没有这样的任务")

		return
	end

	self.青龙经验 = math.floor(玩家数据[id].角色.数据.等级 * 50 * 2) * 10
	self.青龙银子 = math.floor(玩家数据[id].角色.数据.等级 * 20 * 15)

	添加帮贡(id, 青龙玄武帮贡)

	local 帮派编号 = 玩家数据[id].角色.数据.帮派数据.编号
	帮派数据[帮派编号].安定度 = 帮派数据[帮派编号].安定度 + 20

	常规提示(id, "#Y/你获得了#R" .. 青龙玄武帮贡 .. "#Y点帮派贡献度，帮派增加了20点安定度")
	添加活动次数(id, "青龙任务")
	玩家数据[id].角色:添加经验(self.青龙经验, "青龙任务", 1)
	玩家数据[id].角色:添加银子(self.青龙银子, "青龙任务", 1)
	召唤兽添加经验(qz(self.青龙经验 * 0.5), id, "青龙任务", self.地图等级)

	local 奖励参数 = ygsj()

	if 奖励参数 <= 2 then
		奖励名称[id] = 快捷给道具(id, "制造指南书", 取随机数(10, 11))

		广播消息({
			频道 = "xt",
			内容 = format("#S(帮派青龙)#R/%s#Y完成了帮派青龙任务获得了#G%s奖励", 玩家数据[id].角色.数据.名称, 奖励名称[id])
		})
	elseif 奖励参数 <= 10 then
		奖励名称[id] = 快捷给道具(id, "魔兽要诀", 1)
	elseif 奖励参数 <= 25 then
		奖励名称[id] = 快捷给道具(id, "金柳露", 取随机数(1, 3))
	elseif 奖励参数 <= 30 then
		奖励名称[id] = 快捷给道具(id, "超级金柳露", 取随机数(1, 1))
	else
		奖励名称[id] = 快捷给道具(id, "金银锦盒", 取随机数(1, 2))
	end

	local 当前内政 = 帮派数据[帮派编号].当前内政

	if 当前内政 ~= "无" and 帮派数据[帮派编号].帮派建筑[当前内政].数量 < 取帮派建筑数量(帮派数据[帮派编号].帮派规模) then
		帮派数据[帮派编号].帮派建筑[当前内政].当前经验 = 帮派数据[帮派编号].帮派建筑[当前内政].当前经验 + 2500

		if 帮派建筑升级经验[帮派数据[帮派编号].帮派建筑[当前内政].数量] <= 帮派数据[帮派编号].帮派建筑[当前内政].当前经验 then
			帮派数据[帮派编号].帮派建筑[当前内政].当前经验 = 0
			帮派数据[帮派编号].帮派建筑[当前内政].数量 = 帮派数据[帮派编号].帮派建筑[当前内政].数量 + 1

			if 当前内政 == "金库" then
				if 帮派数据[帮派编号].帮派规模 == 1 then
					帮派数据[帮派编号].帮派资金限 = 5000000 + 帮派数据[帮派编号].帮派建筑.金库.数量 * 1000000
				elseif 帮派数据[帮派编号].帮派规模 == 2 then
					帮派数据[帮派编号].帮派资金限 = 10000000 + 帮派数据[帮派编号].帮派建筑.金库.数量 * 1000000
				elseif 帮派数据[帮派编号].帮派规模 == 3 then
					帮派数据[帮派编号].帮派资金限 = 20000000 + 帮派数据[帮派编号].帮派建筑.金库.数量 * 1000000
				elseif 帮派数据[帮派编号].帮派规模 == 4 then
					帮派数据[帮派编号].帮派资金限 = 30000000 + 帮派数据[帮派编号].帮派建筑.金库.数量 * 1000000
				elseif 帮派数据[帮派编号].帮派规模 == 5 then
					帮派数据[帮派编号].帮派资金限 = 40000000 + 帮派数据[帮派编号].帮派建筑.金库.数量 * 1000000
				end
			elseif 当前内政 == "仓库" then
				if 帮派数据[帮派编号].帮派规模 == 1 then
					帮派数据[帮派编号].帮派资材.上限 = 20000 + 帮派数据[帮派编号].帮派建筑.仓库.数量 * 100
				elseif 帮派数据[帮派编号].帮派规模 == 2 then
					帮派数据[帮派编号].帮派资材.上限 = 40000 + 帮派数据[帮派编号].帮派建筑.仓库.数量 * 100
				elseif 帮派数据[帮派编号].帮派规模 == 3 then
					帮派数据[帮派编号].帮派资材.上限 = 60000 + 帮派数据[帮派编号].帮派建筑.仓库.数量 * 100
				elseif 帮派数据[帮派编号].帮派规模 == 4 then
					帮派数据[帮派编号].帮派资材.上限 = 80000 + 帮派数据[帮派编号].帮派建筑.仓库.数量 * 100
				elseif 帮派数据[帮派编号].帮派规模 == 5 then
					帮派数据[帮派编号].帮派资材.上限 = 10000 + 帮派数据[帮派编号].帮派建筑.仓库.数量 * 100
				end
			elseif 当前内政 == "药房" then
				if 帮派数据[帮派编号].帮派规模 == 1 then
					帮派数据[帮派编号].药品增加量 = 帮派数据[帮派编号].帮派建筑.药房.数量 * 5
				elseif 帮派数据[帮派编号].帮派规模 == 2 then
					帮派数据[帮派编号].药品增加量 = 帮派数据[帮派编号].帮派建筑.药房.数量 * 5
				elseif 帮派数据[帮派编号].帮派规模 == 3 then
					帮派数据[帮派编号].药品增加量 = 帮派数据[帮派编号].帮派建筑.药房.数量 * 5
				elseif 帮派数据[帮派编号].帮派规模 == 4 then
					帮派数据[帮派编号].药品增加量 = 帮派数据[帮派编号].帮派建筑.药房.数量 * 5
				elseif 帮派数据[帮派编号].帮派规模 == 5 then
					帮派数据[帮派编号].药品增加量 = 帮派数据[帮派编号].帮派建筑.药房.数量 * 5
				end
			elseif 当前内政 == "厢房" then
				if 帮派数据[帮派编号].帮派规模 == 1 then
					帮派数据[帮派编号].成员数量.上限 = 100 + 帮派数据[帮派编号].帮派建筑.厢房.数量 * 10
				elseif 帮派数据[帮派编号].帮派规模 == 2 then
					帮派数据[帮派编号].成员数量.上限 = 110 + 帮派数据[帮派编号].帮派建筑.厢房.数量 * 10
				elseif 帮派数据[帮派编号].帮派规模 == 3 then
					帮派数据[帮派编号].成员数量.上限 = 120 + 帮派数据[帮派编号].帮派建筑.厢房.数量 * 10
				elseif 帮派数据[帮派编号].帮派规模 == 4 then
					帮派数据[帮派编号].成员数量.上限 = 130 + 帮派数据[帮派编号].帮派建筑.厢房.数量 * 10
				elseif 帮派数据[帮派编号].帮派规模 == 5 then
					帮派数据[帮派编号].成员数量.上限 = 150 + 帮派数据[帮派编号].帮派建筑.厢房.数量 * 10
				end
			end

			帮派数据[帮派编号].当前内政 = "金库"

			广播帮派消息({
				频道 = "bp",
				内容 = "[帮派总管]#R/当前帮派内政: " .. 当前内政 .. "已经完成,请及时设置新的内政,自动默认内政为金库!。"
			}, 帮派编号)
		end
	end

	任务数据[任务id] = nil

	玩家数据[id].角色:取消任务(任务id)
end

function 任务处理类:设置玄武任务(id, 自动挂机)
	if 自动挂机 ~= nil then
		玩家数据[id].最后对话 = {
			名称 = "厢房总管",
			模型 = "男人_兰虎"
		}
	end

	local id组 = 取id组(id)
	local tg = true

	for i = 1, #id组 do
		if 帮派处理类:取是否有帮派(id组[i]) == false then
			tg = false

			break
		end
	end

	if tg == false then
		常规提示(id, "#Y/队伍中有玩家未加入帮派、无法领取帮派玄武任务！")

		return
	elseif 玩家数据[id].角色:取任务(302) ~= 0 then
		添加最后对话(id, "少侠身上已经任务，请先完成任务再来！")

		return
	elseif 活动次数查询(id, "玄武任务") == false then
		return
	elseif 玩家数据[id].队伍 == 0 or 玩家数据[id].队长 == false then
		常规提示(id, "#Y/该任务必须组队完成且由队长领取")

		return
	end

	local 任务id = id .. "_" .. 取随机数(88, 1111) .. "_302_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999)
	local x临时人物队伍 = {}

	if 玩家数据[id].队伍 ~= nil and 玩家数据[id].队伍 ~= 0 then
		for i = 1, #队伍数据[玩家数据[id].队伍].成员数据 do
			if 队伍数据[玩家数据[id].队伍].成员数据[i] ~= nil then
				x临时人物队伍[#x临时人物队伍 + 1] = 队伍数据[玩家数据[id].队伍].成员数据[i]
			end
		end
	end

	local 队伍id = 玩家数据[id].队伍
	self.随机数字 = ygsj()
	local 任务分类 = 1

	if self.随机数字 <= 35 then
		任务分类 = 1
	elseif self.随机数字 <= 55 then
		任务分类 = 2
	elseif self.随机数字 <= 80 then
		任务分类 = 3
	else
		任务分类 = 4
	end

	if 自动挂机 ~= nil then
		if ygsj() <= 自动任务找人概率 then
			任务分类 = 1
		else
			任务分类 = 4
		end
	end

	任务数据[任务id] = {
		类型 = 302,
		结束 = 9999999,
		领取人id = x临时人物队伍,
		id = 任务id,
		起始 = os.time(),
		玩家id = {},
		队伍组 = {},
		分类 = 任务分类,
		帮派总管 = 玩家数据[id].最后对话.名称
	}

	if 任务分类 == 1 then
		local 序列 = 取随机数(1, #Q_随机人物)
		任务数据[任务id].人物 = Q_随机人物[序列].名称[取随机数(1, #Q_随机人物[序列].名称)]
		任务数据[任务id].地图编号 = Q_随机人物[序列].地图

		for n = 1, #队伍数据[队伍id].成员数据 do
			local 临时id = 队伍数据[队伍id].成员数据[n]
			任务数据[任务id].队伍组[#任务数据[任务id].队伍组 + 1] = 临时id

			玩家数据[临时id].角色:添加任务(任务id)
			发送数据(玩家数据[临时id].连接id, 1501, {
				名称 = "厢房总管",
				模型 = "男人_兰虎",
				对话 = format("请帮我将这封书信送给#Y%s#W的#R%s#W，事出紧急，切勿在路上耽搁。", 取地图名称(任务数据[任务id].地图编号), 任务数据[任务id].人物)
			})
		end
	elseif 任务分类 == 2 then
		self.随机药品 = Q_随机药品[取随机数(1, #Q_随机药品)]
		任务数据[任务id].药品 = self.随机药品

		for n = 1, #队伍数据[队伍id].成员数据 do
			local 临时id = 队伍数据[队伍id].成员数据[n]
			任务数据[任务id].队伍组[#任务数据[任务id].队伍组 + 1] = 临时id

			玩家数据[临时id].角色:添加任务(任务id)
			发送数据(玩家数据[临时id].连接id, 1501, {
				名称 = "厢房总管",
				模型 = "男人_兰虎",
				对话 = format("近日物资紧缺，请你前寻找#Y%s#W，事出紧急，切勿在路上耽搁。", 任务数据[任务id].药品)
			})
		end
	elseif 任务分类 == 3 then
		self.随机烹饪 = Q_随机烹饪[取随机数(1, #Q_随机烹饪)]
		任务数据[任务id].烹饪 = self.随机烹饪

		for n = 1, #队伍数据[队伍id].成员数据 do
			local 临时id = 队伍数据[队伍id].成员数据[n]
			任务数据[任务id].队伍组[#任务数据[任务id].队伍组 + 1] = 临时id
			玩家数据[临时id].角色.数据.江湖次数 = 玩家数据[临时id].角色.数据.江湖次数 + 1

			玩家数据[临时id].角色:添加任务(任务id)
			发送数据(玩家数据[临时id].连接id, 1501, {
				名称 = "厢房总管",
				模型 = "男人_兰虎",
				对话 = format("近日物资紧缺，请你前寻找#Y%s#W，事出紧急，切勿在路上耽搁。", 任务数据[任务id].烹饪)
			})
		end
	else
		任务数据[任务id].巡逻 = 0

		for n = 1, #队伍数据[队伍id].成员数据 do
			local 临时id = 队伍数据[队伍id].成员数据[n]
			任务数据[任务id].队伍组[#任务数据[任务id].队伍组 + 1] = 临时id
			玩家数据[临时id].角色.数据.江湖次数 = 玩家数据[临时id].角色.数据.江湖次数 + 1

			玩家数据[临时id].角色:添加任务(任务id)
			发送数据(玩家数据[临时id].连接id, 1501, {
				名称 = "厢房总管",
				模型 = "男人_兰虎",
				对话 = format("最近常有敌对门派探子在长安城内出现，还请你在四周巡逻一番。")
			})
		end
	end

	return true
end

function 任务处理类:完成玄武任务(任务id, id组, 类型)
	if 任务数据[任务id] == nil or 任务数据[任务id].分类 ~= 类型 then
		常规提示(id, "#Y/你没有这样的任务")

		return
	end

	for n = 1, #id组 do
		if 队伍处理类:取是否助战(玩家数据[id组[n]].队伍, n) == 0 then
			local 帮派编号 = 玩家数据[id组[n]].角色.数据.帮派数据.编号
			self.青龙经验 = math.floor(玩家数据[id组[n]].角色.数据.等级 * 60 * 2) * 10
			self.青龙银子 = math.floor(玩家数据[id组[n]].角色.数据.等级 * 20 * 20)

			添加帮贡(id组[n], 青龙玄武帮贡)

			帮派数据[帮派编号].安定度 = 帮派数据[帮派编号].安定度 + 20

			常规提示(id组[n], "#Y/你获得了#R" .. 青龙玄武帮贡 .. "#Y点帮派贡献度，帮派增加了20点安定度")
			添加活动次数(id组[n], "玄武任务")
			玩家数据[id组[n]].角色:添加经验(self.青龙经验, "玄武任务", 1)
			玩家数据[id组[n]].角色:添加银子(self.青龙银子, "玄武任务", 1)
			召唤兽添加经验(qz(self.青龙经验 * 0.5), id组[n], "玄武任务", self.地图等级)

			local 奖励参数 = ygsj()
			local id = id组[n]

			if 奖励参数 <= 2 then
				奖励名称[id] = 快捷给道具(id, "制造指南书", 取随机数(10, 11))

				广播消息({
					频道 = "xt",
					内容 = format("#S(帮派玄武)#R/%s#Y完成了帮派玄武任务获得了#G%s奖励", 玩家数据[id].角色.数据.名称, 奖励名称[id])
				})
			elseif 奖励参数 <= 10 then
				奖励名称[id] = 快捷给道具(id, "魔兽要诀", 1)
			elseif 奖励参数 <= 25 then
				奖励名称[id] = 快捷给道具(id, "金柳露", 取随机数(1, 3))
			elseif 奖励参数 <= 30 then
				奖励名称[id] = 快捷给道具(id, "超级金柳露", 取随机数(1, 1))
			else
				奖励名称[id] = 快捷给道具(id, "金银锦盒", 取随机数(1, 2))
			end

			任务数据[任务id] = nil

			玩家数据[id组[n]].角色:取消任务(任务id)
		end
	end
end

function 任务处理类:开启坐骑任务(id)
	if 玩家数据[id].角色:取任务(307) ~= 0 then
		常规提示(id, "#Y/你当前已经获得坐骑任务了，快去完成吧！")

		return
	end

	local 坐骑费用 = 3000000

	if 取银子(id) < 坐骑费用 then
		常规提示(id, "#Y/你的银两不够接取任务哦")

		return
	end

	if 玩家数据[id].角色.数据.体力 < 100 then
		常规提示(id, "#Y/你当前没有那么体力，无法领取任务！")

		return
	end

	if 玩家数据[id].角色.数据.等级 < 39 then
		常规提示(id, "#Y/等级小于39无法开启")

		return
	end

	玩家数据[id].角色:扣除银子(坐骑费用, 0, 0, "坐骑费用", 1)

	local 任务id = id .. "_307_" .. os.time()
	local 结束时间 = 99999999
	任务数据[任务id] = {
		烹饪 = 0,
		分类 = 1,
		药品 = 0,
		类型 = 307,
		法宝 = 0,
		id = 任务id,
		起始 = os.time(),
		结束 = 结束时间,
		玩家id = id,
		气血 = 气血,
		魔法 = 魔法,
		队伍组 = {}
	}

	玩家数据[id].角色:添加任务(任务id)
	发送数据(玩家数据[id].连接id, 39)
	发送数据(玩家数据[id].连接id, 1501, {
		名称 = "百兽王",
		模型 = "大大王",
		对话 = format("快去找长寿村的太白金星咨询下吧！"),
		选项 = {
			"我这就去"
		}
	})
end

function 任务处理类:完成坐骑任务(任务id, id)
	if 任务数据[任务id] == nil then
		return
	end

	玩家数据[id].角色.数据.种族坐骑 = true

	玩家数据[id].角色:增加坐骑1(id, 1)

	奖励名称[id] = 快捷给道具(id, "坐骑内丹", 3)
	任务数据[任务id] = nil

	玩家数据[id].角色:取消任务(任务id)
end

function 任务处理类:开启法宝任务(id)
	if 玩家数据[id].角色:取任务(308) ~= 0 then
		常规提示(id, "#Y/你已领取过此任务了")

		return
	elseif 玩家数据[id].角色.数据.等级 < 69 then
		常规提示(id, "#Y/等级小于69无法开启")

		return
	elseif 活动次数查询(id, "法宝材料") == false then
		return
	end

	local 任务id = id .. "_" .. 取随机数(88, 1111) .. "_308_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999)
	self.随机数字 = ygsj()

	if self.随机数字 <= 35 then
		任务数据[任务id] = {
			分类 = 1,
			类型 = 308,
			结束 = 9999999,
			领取人id = {
				id
			},
			id = 任务id,
			起始 = os.time(),
			玩家id = id,
			队伍组 = {},
			法宝NPC = 玩家数据[id].最后对话.名称
		}
		local 序列 = 取随机数(1, #Q_随机人物)
		任务数据[任务id].人物 = Q_随机人物[序列].名称[取随机数(1, #Q_随机人物[序列].名称)]
		任务数据[任务id].地图编号 = Q_随机人物[序列].地图

		添加最后对话(id, format("#Y%s#W的#R%s#W正需要帮忙，少侠可以去看看，或许有意外的收获。", 取地图名称(任务数据[任务id].地图编号), 任务数据[任务id].人物))
	elseif self.随机数字 <= 55 then
		self.随机药品 = Q_随机药品[取随机数(1, #Q_随机药品)]
		任务数据[任务id] = {
			分类 = 2,
			类型 = 308,
			结束 = 9999999,
			领取人id = {
				id
			},
			id = 任务id,
			起始 = os.time(),
			玩家id = id,
			队伍组 = {},
			法宝NPC = 玩家数据[id].最后对话.名称,
			物品 = self.随机药品
		}

		添加最后对话(id, format("近日物资紧缺，请你前寻找#Y%s#W，事出紧急，切勿在路上耽搁。", self.随机药品))
	elseif self.随机数字 <= 80 then
		self.随机烹饪 = Q_随机烹饪[取随机数(1, #Q_随机烹饪)]
		任务数据[任务id] = {
			分类 = 3,
			类型 = 308,
			结束 = 9999999,
			领取人id = {
				id
			},
			id = 任务id,
			起始 = os.time(),
			玩家id = id,
			队伍组 = {},
			法宝NPC = 玩家数据[id].最后对话.名称,
			物品 = self.随机烹饪
		}

		添加最后对话(id, format("近日物资紧缺，请你前寻找#Y%s#W，事出紧急，切勿在路上耽搁。", self.随机烹饪))
	else
		任务数据[任务id] = {
			分类 = 4,
			类型 = 308,
			结束 = 9999999,
			领取人id = {
				id
			},
			id = 任务id,
			起始 = os.time(),
			玩家id = id,
			队伍组 = {},
			法宝NPC = 玩家数据[id].最后对话.名称
		}
		local 序列 = 取随机数(1, #Q_随机人物)
		任务数据[任务id].人物 = Q_随机人物[序列].名称[取随机数(1, #Q_随机人物[序列].名称)]
		任务数据[任务id].地图编号 = Q_随机人物[序列].地图

		添加最后对话(id, format("#Y%s#W的#R%s#W仗着自己会点武功，到处惹是生非，希望少侠能为名除害。", 取地图名称(任务数据[任务id].地图编号), 任务数据[任务id].人物))
	end

	if 任务数据[任务id].进程 == nil then
		任务数据[任务id].进程 = 1
	else
		任务数据[任务id].进程 = 2
	end

	玩家数据[id].角色:添加任务(任务id)
end

function 任务处理类:完成法宝任务(任务id, id)
	if 任务数据[任务id] == nil then
		return
	end

	local 随机材料 = Q_随机材料[取随机数(1, #Q_随机材料)]

	玩家数据[id].道具:给予道具(id, 随机材料, 1, nil, nil, "专用")
	常规提示(id, "恭喜少侠获得了法宝合成材料" .. 随机材料 .. "。")
	添加活动次数(id, "法宝材料")

	if 玩家数据[id].角色.法宝进程 == nil then
		玩家数据[id].角色.法宝进程 = 1

		玩家数据[id].角色:取消任务(任务id)
		self:开启法宝任务(id)
		常规提示(id, "你获得了一个新的法宝任务。")
	else
		玩家数据[id].角色:取消任务(任务id)

		玩家数据[id].角色.法宝进程 = 2
	end

	if 玩家数据[id].角色.法宝进程 == 2 then
		发送数据(玩家数据[id].连接id, 1501, {
			名称 = "金童子",
			模型 = "男人_道童",
			对话 = format("少侠已经集齐法宝合成的材料了，可以来天宫找我领取内丹任务进行法宝合成哦")
		})
	end
end

function 任务处理类:开启法宝内丹任务(id)
	if 玩家数据[id].角色:取任务(309) ~= 0 then
		常规提示(id, "#Y/你已领取过此任务了")

		return
	elseif 玩家数据[id].角色.数据.等级 < 69 then
		常规提示(id, "#Y/等级小于69无法开启")

		return
	elseif 活动次数查询(id, "法宝内丹") == false then
		return
	end

	local 地图范围 = {
		1501,
		1092,
		1070,
		1193,
		1173,
		1146,
		1140,
		1208,
		1040,
		1226,
		1142
	}
	local 地图 = 地图范围[取随机数(1, #地图范围)]
	local 任务id = 地图 .. "_309_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999)
	local xy = 地图处理类.地图坐标[地图]:取随机点()
	任务数据[任务id] = {
		名称 = "千年妖魔",
		变异 = true,
		结束 = 2400,
		行走开关 = true,
		模型 = "进阶吸血鬼",
		类型 = 309,
		id = 任务id,
		起始 = os.time(),
		玩家id = {},
		队伍组 = {},
		x = xy.x,
		y = xy.y,
		副本id = id,
		地图编号 = 地图,
		地图名称 = 取地图名称(地图)
	}

	添加最后对话(id, format("内丹是修炼者经过百年甚至千年的修炼在体内以灵气结成的丹丸，#Y%s#W正在#R%s#Y%s#W，#Y%s四处为祸人间，少侠可前往收服该妖魔获取内丹。", 任务数据[任务id].名称, 任务数据[任务id].地图名称, 任务数据[任务id].x, 任务数据[任务id].y))
	地图处理类:添加单位(任务id)
	玩家数据[id].角色:添加任务(任务id)
end

function 任务处理类:完成法宝内丹任务(任务id, id)
	if 任务数据[任务id] == nil then
		return
	end

	玩家数据[id].道具:给予道具(id, "内丹", 1, nil, nil, "专用")
	添加活动次数(id, "法宝内丹")

	if 玩家数据[id].角色.法宝进程 == 2 then
		玩家数据[id].角色.法宝进程 = nil
	end

	常规提示(id, "恭喜少侠获得了法宝合成材料内丹，可以去金童子处合成法宝了。")
	地图处理类:删除单位(任务数据[任务id].地图编号, 任务数据[任务id].单位编号)
	玩家数据[id].角色:取消任务(任务id)
end

function 任务处理类:开启飞升大唐推荐战斗(id)
	local 地图范围 = {
		1506
	}
	local 地图 = 地图范围[取随机数(1, #地图范围)]
	local 任务id = 地图 .. "_310_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999)
	local xy = 地图处理类.地图坐标[地图]:取随机点()
	任务数据[任务id] = {
		名称 = "横行霸道的土匪",
		行走开关 = true,
		变异 = true,
		结束 = 2400,
		进度 = 1,
		模型 = "强盗",
		类型 = 310,
		id = 任务id,
		起始 = os.time(),
		玩家id = {},
		队伍组 = {},
		x = xy.x,
		y = xy.y,
		地图编号 = 地图,
		地图名称 = 取地图名称(地图)
	}

	地图处理类:添加单位(任务id)
	玩家数据[id].角色:添加任务(任务id)
end

function 任务处理类:开启飞升化生推荐(id)
	local 任务id = "311" .. os.time() .. 取随机数(88, 999999999)
	任务数据[任务id] = {
		类型 = 311,
		结束 = 2400,
		进度 = 1,
		领取人id = {
			id
		},
		id = 任务id,
		起始 = os.time(),
		玩家id = id,
		队伍组 = {},
		任务NPC = 玩家数据[id].最后对话.名称
	}
	local aa = 取多项数字列表(1, #Q_飞升化生推荐, 3)
	local 序列 = 取随机数(1, #Q_飞升化生推荐)
	local 序列2 = 取随机数(1, #Q_飞升化生推荐)
	local 序列3 = 取随机数(1, #Q_飞升化生推荐)
	任务数据[任务id].人物 = {
		{
			找到 = false,
			名称 = Q_飞升化生推荐[aa[1]].名称
		},
		{
			找到 = false,
			名称 = Q_飞升化生推荐[aa[2]].名称
		},
		{
			找到 = false,
			名称 = Q_飞升化生推荐[aa[3]].名称
		}
	}
	任务数据[任务id].地图编号 = Q_飞升化生推荐[aa[1]].地图

	玩家数据[id].角色:添加任务(任务id)
end

function 任务处理类:开启飞升女儿推荐(id)
	local 任务id = "312" .. os.time() .. 取随机数(88, 999999999)
	任务数据[任务id] = {
		类型 = 312,
		进度 = 1,
		结束 = 900,
		领取人id = {
			id
		},
		id = 任务id,
		起始 = os.time(),
		玩家id = id,
		队伍组 = {}
	}

	玩家数据[id].角色:添加任务(任务id)
end

function 任务处理类:开启飞升方寸推荐战斗(id)
	local 地图范围 = {
		1506
	}
	local 地图 = 地图范围[取随机数(1, #地图范围)]
	local 任务id = 地图 .. "_313_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999)
	local xy = 地图处理类.地图坐标[地图]:取随机点()

	if 玩家数据[id].角色.数据.锦衣[1] == nil or 玩家数据[id].道具.数据[玩家数据[id].角色.数据.锦衣[1]] == nil then
		锦衣 = 0
	else
		锦衣 = 玩家数据[id].道具.数据[玩家数据[id].角色.数据.锦衣[1]].名称
	end

	任务数据[任务id] = {
		行走开关 = true,
		结束 = 2400,
		进度 = 1,
		类型 = 313,
		id = 任务id,
		起始 = os.time(),
		玩家id = {},
		队伍组 = {},
		名称 = 玩家数据[id].角色.数据.名称 .. "的心魔",
		模型 = 玩家数据[id].角色.数据.造型,
		染色组 = 玩家数据[id].角色.数据.染色组,
		染色方案 = 玩家数据[id].角色.数据.染色方案,
		武器 = 玩家数据[id].道具.数据[玩家数据[id].角色.数据.装备[3]].名称,
		武器等级 = 玩家数据[id].道具.数据[玩家数据[id].角色.数据.装备[3]].级别限制,
		武器染色方案 = 玩家数据[id].道具.数据[玩家数据[id].角色.数据.装备[3]].染色方案,
		武器染色组 = 玩家数据[id].道具.数据[玩家数据[id].角色.数据.装备[3]].染色组,
		x = xy.x,
		y = xy.y,
		地图编号 = 地图,
		地图名称 = 取地图名称(地图)
	}

	地图处理类:添加单位(任务id)
	玩家数据[id].角色:添加任务(任务id)
end

function 任务处理类:加载首席单位()
	for n = 1, 15 do
		local 任务id = Q_门派编号[n] .. 999888
		任务数据[任务id] = {
			结束 = 99999999999.0,
			类型 = 999888,
			称谓 = "首席弟子",
			id = 任务id,
			起始 = os.time(),
			名称 = 首席争霸[Q_门派编号[n]].名称,
			模型 = 首席争霸[Q_门派编号[n]].模型,
			染色组 = 首席争霸[Q_门派编号[n]].染色组,
			染色方案 = 首席争霸[Q_门派编号[n]].染色方案,
			武器 = 首席争霸[Q_门派编号[n]].武器,
			武器等级 = 首席争霸[Q_门派编号[n]].武器等级,
			武器染色方案 = 首席争霸[Q_门派编号[n]].武器染色方案,
			武器染色组 = 首席争霸[Q_门派编号[n]].武器染色组,
			x = Q_首席弟子[Q_门派编号[n]].x,
			y = Q_首席弟子[Q_门派编号[n]].y,
			门派 = Q_门派编号[n],
			方向 = Q_首席弟子[Q_门派编号[n]].方向,
			地图编号 = Q_首席弟子[Q_门派编号[n]].地图,
			地图名称 = Q_门派编号[n],
			序列 = n
		}

		地图处理类:添加单位(任务id)
	end
end

function 任务处理类:完成生死劫挑战(任务id, id组)
	for n = 1, #id组 do
		if 队伍处理类:取是否助战(玩家数据[id组[1]].队伍, n) == 0 then
			local id = id组[n]
			local 层数 = 生死劫数据[id组[n]]
			local 奖励 = ""

			if 玩家数据[id].角色.数据.生死劫 then
			elseif 层数 == 1 then
				玩家数据[id].角色:添加称谓(id, "生死劫·止戈")
			elseif 层数 == 2 then
				玩家数据[id].角色:删除称谓(id, "生死劫·止戈")
				玩家数据[id].角色:添加称谓(id, "生死劫·清心")
			elseif 层数 == 3 then
				玩家数据[id].角色:删除称谓(id, "生死劫·清心")
				玩家数据[id].角色:添加称谓(id, "生死劫·雷霆")
			elseif 层数 == 4 then
				玩家数据[id].角色:删除称谓(id, "生死劫·雷霆")
				玩家数据[id].角色:添加称谓(id, "生死劫·惜花")
			elseif 层数 == 5 then
				玩家数据[id].角色:删除称谓(id, "生死劫·惜花")
				玩家数据[id].角色:添加称谓(id, "生死劫·忘情")
			elseif 层数 == 6 then
				玩家数据[id].角色:删除称谓(id, "生死劫·忘情")
				玩家数据[id].角色:添加称谓(id, "生死劫·卧龙")
			elseif 层数 == 7 then
				玩家数据[id].角色:删除称谓(id, "生死劫·卧龙")
				玩家数据[id].角色:添加称谓(id, "生死劫·天象")
			elseif 层数 == 8 then
				玩家数据[id].角色:删除称谓(id, "生死劫·天象")
				玩家数据[id].角色:添加称谓(id, "生死劫·轮回")
			elseif 层数 == 9 then
				玩家数据[id].角色:删除称谓(id, "生死劫·轮回")
				玩家数据[id].角色:添加称谓(id, "生死劫·娑罗")
			end

			奖励次数[id] = 取奖励次数(id)

			for i = 1, 取奖励次数(id) do
				if 层数 == 1 then
					奖励名称[id] = 快捷给道具(id, "星辉石", 取随机数(6, 7))

					快捷给道具(id, "坐骑内丹", 1)
				elseif 层数 == 2 then
					奖励名称[id] = 快捷给道具(id, 取宝石(), 10)

					快捷给道具(id, "坐骑内丹", 2)
				elseif 层数 == 3 then
					玩家数据[id].角色:添加银子(20000000, "生死劫出售", 1)

					if ygsj() <= 50 then
						奖励名称[id] = 快捷给道具(id, "制造指南书", 取随机数(13, 14))
					else
						奖励名称[id] = 快捷给道具(id, "百炼精铁", 取随机数(13, 14))
					end

					快捷给道具(id, "坐骑内丹", 3)
				elseif 层数 == 4 then
					if ygsj() <= 50 then
						奖励名称[id] = 快捷给道具(id, "制造指南书", 14)
					else
						奖励名称[id] = 快捷给道具(id, "百炼精铁", 14)
					end

					快捷给道具(id, "坐骑内丹", 4)
				elseif 层数 == 5 then
					奖励名称[id] = 快捷给道具(id, "灵饰指南书", 14)

					快捷给道具(id, "坐骑内丹", 5)
				elseif 层数 == 6 then
					奖励名称[id] = 快捷给道具(id, "元灵晶石", 14)

					快捷给道具(id, "坐骑内丹", 6)
				elseif 层数 == 7 then
					奖励名称[id] = 快捷给道具(id, "百炼精铁", 15)

					快捷给道具(id, "坐骑内丹", 7)
				elseif 层数 == 8 then
					奖励名称[id] = 快捷给道具(id, "百炼精铁", 15)

					快捷给道具(id, "坐骑内丹", 8)
				elseif 层数 == 9 then
					奖励名称[id] = 快捷给道具(id, "百炼精铁", 15)
					奖励名称[id] = 快捷给道具(id, "制造指南书", 15)

					快捷给道具(id, "坐骑内丹", 9)
				end

				广播消息({
					频道 = "xt",
					内容 = format("#S(生死劫)#R/%s#Y成功完成了第#R%s#Y场生死劫挑战，丹青生对其欣赏有加，特赐#G/%s#Y以作奖励" .. "#57", 玩家数据[id].角色.数据.名称, 生死劫数据[id], 奖励名称[id])
				})
				添加仙玉(10000, 玩家数据[id].账号, id, "生死劫")
			end

			生死劫数据[id] = 生死劫数据[id] + 1

			if 生死劫数据.次数[id] == nil then
				生死劫数据.次数[id] = 0
			end

			生死劫数据.次数[id] = 生死劫数据.次数[id] + 1

			if 生死劫数据[id] == 10 then
				生死劫数据[id] = 1
			end
		end
	end
end

function 任务处理类:刷新世界BOSS(id)
	local 地图范围 = {
		1207,
		1204,
		1231,
		1232
	}
	local 等级 = 150
	local 地图 = 地图范围[取随机数(1, #地图范围)]
	local xy = 地图处理类.地图坐标[地图]:取随机点()
	local 任务id = "_" .. 等级 .. "_" .. 取随机数(1999, 11111) .. "_206_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999) .. "_" .. 等级
	随机序列 = 随机序列 + 1
	造型 = "进阶夜罗刹"
	任务数据[任务id] = {
		行走开关 = true,
		结束 = 3600,
		类型 = 206,
		名称 = "罗刹王",
		id = 任务id,
		起始 = os.time(),
		玩家id = id,
		队伍组 = {},
		称谓 = "世界BOSS(" .. 等级 .. "级)",
		模型 = 造型,
		等级 = 等级,
		x = xy.x,
		y = xy.y,
		地图编号 = 地图,
		地图名称 = 取地图名称(地图)
	}

	地图处理类:添加单位(任务id)
	广播消息({
		频道 = "xt",
		内容 = format("#G妖门大开，魔王现世。世界BOSS#Y%s#G已经出现在#Y%s#G场景内", 任务数据[任务id].名称, 任务数据[任务id].地图名称)
	})
end

function 任务处理类:刷出新服福利BOSS()
	local 地图范围 = DeepCopy(刷怪地图范围.福利BOSS)
	local 刷新地图 = {}

	for n = 1, #地图范围 do
		local 地图 = 地图范围[n]

		for i = 1, 10 do
			local xy = 地图处理类.地图坐标[地图]:取随机点()
			local 任务id = "_318_" .. os.time() .. "_" .. 取随机数(88, 99999999)
			local 造型 = "超级玉兔"
			任务数据[任务id] = {
				行走开关 = true,
				结束 = 1800,
				类型 = 318,
				名称 = "新服福利BOSS",
				称谓 = "老G很骚",
				id = 任务id,
				起始 = os.time(),
				玩家id = id,
				队伍组 = {},
				模型 = 造型,
				x = xy.x,
				y = xy.y,
				地图编号 = 地图,
				地图名称 = 取地图名称(地图)
			}

			地图处理类:添加单位(任务id)
		end

		刷新地图[#刷新地图 + 1] = 取地图名称(地图)
	end

	广播消息({
		频道 = "xt",
		内容 = format("#G福利时间到，一波福利怪#Y%s#G已经出现在#Y%s、%s、%s、%s#G场景内", "新服福利BOSS", 刷新地图[1], 刷新地图[2], 刷新地图[3], 刷新地图[4])
	})
end

function 任务处理类:完成新服福利BOSS(任务id, id组)
	if 任务数据[任务id] == nil then
		return
	end

	local 删 = false

	for n = 1, #id组 do
		local id = id组[n]

		if 队伍处理类:取是否助战(玩家数据[id].队伍, n) == 0 and 添加活动次数(id, "福利BOSS") == true then
			删 = true

			if 掉率模式 == 1 then
				通用给奖励(id, {
					经验 = {
						3000,
						5000
					},
					银子 = {
						3000
					},
					储备 = {
						3000
					}
				}, "新服福利BOSS", true, "不判断次数")
			else
				local 平均等级 = 取队伍平均等级(玩家数据[id].队伍, id)
				经验 = 平均等级 * 平均等级 * 100
				银子 = 平均等级 * 250
				储备 = 平均等级 * 200

				玩家数据[id].角色:添加经验(经验, "新服福利BOSS", 1)
				玩家数据[id].角色:添加储备(储备, "新服福利BOSS", 1)
				玩家数据[id].角色:添加银子(银子, "新服福利BOSS", 1)

				新手活动[id].次数 = 新手活动[id].次数 + 1

				召唤兽添加经验(math.floor(经验 * 0.8), id, "新服福利BOSS")

				奖励次数[id] = 取奖励次数(id)

				for i = 1, 奖励次数[id] do
					local 通知开关 = true
					local 奖励参数 = 取随机数(1, 150)

					if 奖励参数 <= 10 then
						通知开关 = false
						奖励名称[id] = 快捷给道具(id, "魔兽要诀", 1)
					elseif 奖励参数 <= 20 then
						奖励名称[id] = 快捷给道具(id, "符石卷轴", 2)
					elseif 奖励参数 <= 30 then
						奖励名称[id] = 快捷给道具(id, "未激活的符石", 1)
					elseif 奖励参数 <= 50 then
						奖励名称[id] = 快捷给道具(id, "魔兽残卷", 1)
					elseif 奖励参数 <= 70 then
						奖励名称[id] = 快捷给道具(id, "五宝", 1)
					else
						通知开关 = false
					end

					if 通知开关 == true then
						广播消息({
							频道 = "xt",
							内容 = format("#S(新服福利BOSS)#R/%s#Y小试牛刀，轻轻松松的击败了新服福利BOSS#R%s#Y，因此获得了其奖励的#G/%s#Y" .. "#" .. 取随机数(1, 110), 玩家数据[id].角色.数据.名称, 任务数据[任务id].名称, 奖励名称[id])
						})
					end
				end
			end
		end
	end

	if 删 then
		地图处理类:删除单位(任务数据[任务id].地图编号, 任务数据[任务id].单位编号)

		任务数据[任务id] = nil
	else
		任务数据[任务id].战斗 = nil
	end
end

function 任务处理类:开启车迟副本(id)
	if 玩家数据[id].队伍 == 0 or 玩家数据[id].队长 == false then
		常规提示(id, "#Y/该任务必须组队完成且由队长领取")

		return
	elseif 取队伍人数(id) < 3 then
		常规提示(id, "#Y此副本要求队伍人数不低于3人")

		return
	elseif 取队伍最低等级(玩家数据[id].队伍, 49) then
		常规提示(id, "#Y/等级小于49级的玩家无法领取此任务")

		return
	end

	local 队伍id = 玩家数据[id].队伍

	for n = 1, #队伍数据[队伍id].成员数据 do
		local 临时id = 队伍数据[队伍id].成员数据[n]

		if 副本数据.车迟斗法.完成[临时id] ~= nil then
			常规提示(id, "#Y" .. 玩家数据[临时id].角色.数据.名称 .. "本日已经完成过此副本了")

			return
		elseif 玩家数据[临时id].角色:取任务(130) ~= 0 then
			常规提示(id, "#Y" .. 玩家数据[临时id].角色.数据.名称 .. "正在进行副本任务，无法领取新的副本")

			return
		end
	end

	local 任务id = id .. "_130_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999)
	任务数据[任务id] = {
		类型 = 130,
		结束 = 7200,
		id = 任务id,
		起始 = os.time(),
		玩家id = {},
		队伍组 = {},
		副本id = id
	}
	副本数据.车迟斗法.进行[id] = {
		进程 = 1,
		副本任务id = 任务id,
		车迟木材 = 0
	}
	local 队伍id = 玩家数据[id].队伍

	self:设置车迟斗法副本(id)

	for n = 1, #队伍数据[队伍id].成员数据 do
		if 队伍处理类:取是否助战(玩家数据[id].队伍, n) == 0 then
			local 临时id = 队伍数据[队伍id].成员数据[n]
			任务数据[任务id].队伍组[#任务数据[任务id].队伍组 + 1] = 临时id + 0

			玩家数据[临时id].角色:添加任务(任务id)
			常规提示(临时id, "#Y你开启了车迟斗法副本")
		end
	end
end

function 任务处理类:设置车迟斗法副本(id, 副本任务id)
	if 副本数据.车迟斗法.进行[id] == nil then
		return
	end

	if 副本数据.车迟斗法.进行[id].副本任务id == nil then
		常规提示(id, "#Y副本任务失败！")

		return
	end

	local fbid = 副本数据.车迟斗法.进行[id].副本任务id
	local 随机名称 = {}
	local 随机模型 = {}

	if 副本数据.车迟斗法.进行[id].进程 == 1 then
		for n = 1, 副本减负.车迟斗法[1] do
			local 任务id = id .. "_131_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999) .. "_1_" .. n
			local 地图 = 6021
			local xy = 地图处理类.地图坐标[地图]:取随机点()
			任务数据[任务id] = {
				名称 = "有个道士",
				行走开关 = true,
				结束 = 7200,
				类型 = 131,
				模型 = "男人_道士",
				id = 任务id,
				起始 = os.time(),
				玩家id = {},
				队伍组 = 任务数据[fbid].队伍组,
				x = xy.x,
				y = xy.y,
				副本id = id,
				地图编号 = 地图,
				地图名称 = 取地图名称(地图),
				真实副本id = fbid
			}

			地图处理类:添加单位(任务id)
		end
	elseif 副本数据.车迟斗法.进行[id].进程 == 2 then
		local 任务id = id .. "_132_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999) .. "_1_"
		local 地图 = 6021
		任务数据[任务id] = {
			名称 = "有个和尚",
			y = 111,
			x = 49,
			结束 = 7200,
			类型 = 132,
			模型 = "和尚2",
			id = 任务id,
			起始 = os.time(),
			玩家id = {},
			队伍组 = 任务数据[fbid].队伍组,
			副本id = id,
			地图编号 = 地图,
			地图名称 = 取地图名称(地图),
			真实副本id = fbid
		}

		地图处理类:添加单位(任务id)
	elseif 副本数据.车迟斗法.进行[id].进程 == 3 then
		副本数据.车迟斗法.进行[id].车迟贡品 = 0
		随机名称 = {
			"贡品包子",
			"贡品苹果",
			"贡品桃子",
			"贡品寿桃",
			"贡品香梨",
			"贡品香蕉",
			"贡品烧饼"
		}

		for n = 1, 副本减负.车迟斗法[2] do
			local 任务id = id .. "_133_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999) .. "_1_" .. n
			local 地图 = 6021
			local xy = 地图处理类.地图坐标[6021]:取随机点()
			任务数据[任务id] = {
				行走开关 = true,
				结束 = 7200,
				地图编号 = 6021,
				类型 = 133,
				模型 = "泡泡",
				id = 任务id,
				起始 = os.time(),
				玩家id = {},
				队伍组 = 任务数据[fbid].队伍组,
				名称 = 随机名称[取随机数(1, #随机名称)],
				x = xy.x,
				y = xy.y,
				副本id = id,
				地图名称 = 取地图名称(6021),
				真实副本id = fbid
			}

			地图处理类:添加单位(任务id)
		end
	elseif 副本数据.车迟斗法.进行[id].进程 == 4 then
		名称 = {
			"道德天尊",
			"元始天尊",
			"灵宝天尊"
		}
		副本数据.车迟斗法.进行[id].序列 = {
			false,
			false,
			false
		}

		for n = 1, 3 do
			local 任务id = id .. "_134_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999) .. "_1_" .. n
			local 地图 = 6022
			local xy = 地图处理类.地图坐标[地图]:取随机点()
			任务数据[任务id] = {
				行走开关 = true,
				变异 = true,
				结束 = 7200,
				类型 = 134,
				模型 = "大力金刚",
				id = 任务id,
				起始 = os.time(),
				玩家id = {},
				队伍组 = 任务数据[fbid].队伍组,
				名称 = 名称[n],
				x = xy.x,
				y = xy.y,
				副本id = id,
				序列 = n,
				地图编号 = 地图,
				地图名称 = 取地图名称(地图),
				真实副本id = fbid
			}

			地图处理类:添加单位(任务id)
		end
	elseif 副本数据.车迟斗法.进行[id].进程 == 5 then
		local 任务id = id .. "_135_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999) .. "_1_"
		local 地图 = 6022
		任务数据[任务id] = {
			名称 = "有个和尚",
			y = 40,
			x = 22,
			结束 = 7200,
			类型 = 135,
			模型 = "和尚2",
			id = 任务id,
			起始 = os.time(),
			玩家id = {},
			队伍组 = 任务数据[fbid].队伍组,
			副本id = id,
			地图编号 = 地图,
			地图名称 = 取地图名称(地图),
			真实副本id = fbid
		}

		地图处理类:添加单位(任务id)
	elseif 副本数据.车迟斗法.进行[id].进程 == 6 then
		local 任务id = id .. "_136_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999) .. "_1_"
		local 地图 = 6023
		任务数据[任务id] = {
			名称 = "有个神仙",
			y = 145,
			x = 16,
			结束 = 7200,
			类型 = 136,
			模型 = "和尚2",
			id = 任务id,
			起始 = os.time(),
			玩家id = {},
			队伍组 = 任务数据[fbid].队伍组,
			副本id = id,
			地图编号 = 地图,
			地图名称 = 取地图名称(地图),
			真实副本id = fbid
		}

		地图处理类:添加单位(任务id)
	elseif 副本数据.车迟斗法.进行[id].进程 == 7 then
		if ygsj() <= 50 then
			随机名称 = {
				"雷公",
				"电母",
				"雨师"
			}
			随机模型 = {
				"雷鸟人",
				"星灵仙子",
				"雨师"
			}
			副本数据.车迟斗法.进行[id].序列 = {
				false,
				false,
				false
			}

			for i = 1, 3 do
				local 任务id = id .. "_137_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999) .. "_1_" .. i
				local 地图 = 6023
				local xy = 地图处理类.地图坐标[地图]:取随机点()
				任务数据[任务id] = {
					变异 = true,
					结束 = 7200,
					类型 = 137,
					id = 任务id,
					起始 = os.time(),
					玩家id = {},
					队伍组 = 任务数据[fbid].队伍组,
					名称 = 随机名称[i],
					模型 = 随机模型[i],
					x = xy.x,
					y = xy.y,
					序列 = i,
					副本id = id,
					地图编号 = 地图,
					地图名称 = 取地图名称(地图),
					真实副本id = fbid
				}

				地图处理类:添加单位(任务id)
			end
		else
			随机名称 = {
				"你不动",
				"你不动",
				"我不动"
			}
			副本数据.车迟斗法.进行[id].不动 = true
			副本数据.车迟斗法.进行[id].序列 = {
				false,
				false,
				false
			}

			for i = 1, 3 do
				local 任务id = id .. "_138_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999) .. "_1_" .. i
				local 地图 = 6023
				local xy = 地图处理类.地图坐标[地图]:取随机点()
				任务数据[任务id] = {
					变异 = true,
					结束 = 7200,
					模型 = "净瓶女娲",
					类型 = 138,
					id = 任务id,
					起始 = os.time(),
					玩家id = {},
					队伍组 = 任务数据[fbid].队伍组,
					名称 = 随机名称[i],
					x = xy.x,
					y = xy.y,
					序列 = i,
					副本id = id,
					地图编号 = 地图,
					地图名称 = 取地图名称(地图),
					真实副本id = fbid
				}

				地图处理类:添加单位(任务id)
			end
		end
	elseif 副本数据.车迟斗法.进行[id].进程 == 8 then
		local 任务id = id .. "_139_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999) .. "_1_"
		local 地图 = 6023
		任务数据[任务id] = {
			名称 = "电母",
			y = 74,
			变异 = true,
			x = 99,
			结束 = 7200,
			类型 = 139,
			模型 = "星灵仙子",
			id = 任务id,
			起始 = os.time(),
			玩家id = {},
			队伍组 = 任务数据[fbid].队伍组,
			副本id = id,
			地图编号 = 地图,
			地图名称 = 取地图名称(地图),
			真实副本id = fbid
		}

		地图处理类:添加单位(任务id)
	elseif 副本数据.车迟斗法.进行[id].进程 == 9 then
		local 任务id = id .. "_140_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999) .. "_1_"
		local 地图 = 6023
		任务数据[任务id] = {
			名称 = "齐天大圣",
			y = 69,
			变异 = true,
			x = 85,
			结束 = 7200,
			类型 = 140,
			模型 = "孙悟空",
			id = 任务id,
			起始 = os.time(),
			玩家id = {},
			队伍组 = 任务数据[fbid].队伍组,
			副本id = id,
			地图编号 = 地图,
			地图名称 = 取地图名称(地图),
			真实副本id = fbid
		}

		地图处理类:添加单位(任务id)
	elseif 副本数据.车迟斗法.进行[id].进程 == 10 then
		随机名称 = {
			"羊力",
			"鹿力",
			"虎力"
		}
		随机模型 = {
			"炎魔神",
			"吸血鬼",
			"噬天虎"
		}

		for i = 1, 3 do
			local 任务id = id .. "_141_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999) .. "_1_" .. i
			local 地图 = 6023
			local xy = 地图处理类.地图坐标[地图]:取随机点()
			任务数据[任务id] = {
				变异 = true,
				结束 = 7200,
				类型 = 141,
				id = 任务id,
				起始 = os.time(),
				玩家id = {},
				队伍组 = 任务数据[fbid].队伍组,
				名称 = 随机名称[i],
				模型 = 随机模型[i],
				x = xy.x,
				y = xy.y,
				序列 = i,
				副本id = id,
				地图编号 = 地图,
				地图名称 = 取地图名称(地图),
				真实副本id = fbid
			}

			地图处理类:添加单位(任务id)
		end

		if ygsj() <= 33 then
			副本数据.车迟斗法.进行[id].真假 = {
				true,
				false,
				false
			}
		elseif ygsj() <= 66 then
			副本数据.车迟斗法.进行[id].真假 = {
				false,
				true,
				false
			}
		else
			副本数据.车迟斗法.进行[id].真假 = {
				false,
				false,
				true
			}
		end
	elseif 副本数据.车迟斗法.进行[id].进程 == 11 then
		local 宝箱数量 = 0

		for i, v in pairs(地图处理类.地图玩家[6023]) do
			if 玩家数据[i].角色:取任务(130) ~= 0 and 玩家数据[i].角色:取任务(130) == fbid then
				local 任务id = i .. "_142_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999) .. "_1_"
				local 地图 = 6023
				local xy = 地图处理类.地图坐标[地图]:取随机点()
				任务数据[任务id] = {
					结束 = 7200,
					类型 = 142,
					模型 = "宝箱",
					id = 任务id,
					起始 = os.time(),
					玩家id = {},
					队伍组 = 任务数据[fbid].队伍组,
					名称 = 玩家数据[i].角色.数据.名称 .. "的宝箱",
					x = xy.x,
					y = xy.y,
					副本id = id,
					绑定id = i,
					地图编号 = 地图,
					地图名称 = 取地图名称(地图),
					真实副本id = fbid,
					副本任务id = 副本任务id
				}
				宝箱数量 = 宝箱数量 + 1

				地图处理类:添加单位(任务id)
			end
		end

		副本数据.车迟斗法.进行[id].宝箱数量 = 宝箱数量
	elseif 副本数据.车迟斗法.进行[id].进程 == 12 then
		for i = 1, 10 do
			local 任务id = id .. "_143_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999) .. "_1_"
			local 地图 = 6023
			local xy = 地图处理类.地图坐标[地图]:取随机点()
			任务数据[任务id] = {
				名称 = "小宝箱",
				变异 = true,
				结束 = 7200,
				模型 = "宝箱",
				类型 = 143,
				id = 任务id,
				起始 = os.time(),
				玩家id = {},
				队伍组 = 任务数据[fbid].队伍组,
				x = xy.x,
				y = xy.y,
				序列 = i,
				副本id = id,
				地图编号 = 地图,
				地图名称 = 取地图名称(地图),
				真实副本id = fbid
			}

			地图处理类:添加单位(任务id)
		end

		任务数据[副本任务id].起始 = os.time()
		任务数据[副本任务id].结束 = 600

		地图处理类:当前消息广播2(6023, format("#G副本将于10分钟后正式结束,请及时找寻小宝箱哟！！！"), 副本任务id)
	end
end

function 任务处理类:刷出散财童子()
	local 地图范围 = DeepCopy(刷怪地图范围.散财童子)
	local 地图 = 地图范围[取随机数(1, #地图范围)]

	for i = 1, 15 do
		local xy = 地图处理类.地图坐标[地图]:取随机点()
		local 任务id = "_337_" .. os.time() .. "_" .. 取随机数(88, 99999999)
		local 造型 = "葫芦宝贝"
		任务数据[任务id] = {
			行走开关 = true,
			结束 = 1800,
			类型 = 337,
			名称 = "散财童子",
			称谓 = "恭喜发财",
			id = 任务id,
			起始 = os.time(),
			玩家id = id,
			队伍组 = {},
			模型 = 造型,
			x = xy.x,
			y = xy.y,
			地图编号 = 地图,
			地图名称 = 取地图名称(地图)
		}

		地图处理类:添加单位(任务id)
	end

	广播消息({
		频道 = "xt",
		内容 = format("#G福利时间到，一波福利怪#Y%s#G已经出现在#Y%s#G场景内", "散财童子", 取地图名称(地图))
	})
end

function 任务处理类:完成散财童子(任务id, id组)
	if 任务数据[任务id] == nil then
		return
	end

	local 删 = false

	for n = 1, #id组 do
		local id = id组[n]

		if 队伍处理类:取是否助战(玩家数据[id].队伍, n) == 0 and 添加活动次数(id, "散财童子") == true then
			删 = true

			if 掉率模式 == 1 then
				通用给奖励(id, {
					银子 = {
						3000,
						3500
					}
				}, "散财童子", true, "不判断次数")
			else
				local 等级 = 取队伍平均等级(玩家数据[id].队伍, id)
				local 经验 = 等级 * 3500
				local 银子 = 150000

				玩家数据[id].角色:添加经验(经验, "散财童子", 1)
				玩家数据[id].角色:添加银子(银子, "散财童子", 1)
				召唤兽添加经验(math.floor(经验 * 0.8), id, "散财童子")

				奖励次数[id] = 取奖励次数(id)

				for i = 1, 奖励次数[id] do
					local 奖励参数 = 取随机数(1, 150)

					if 奖励参数 <= 10 then
						奖励名称[id] = 快捷给道具(id, "月华露", 1, 500)
					elseif 奖励参数 <= 20 then
						奖励名称[id] = 快捷给道具(id, "金银锦盒", 10)
					elseif 奖励参数 <= 35 then
						奖励名称[id] = 快捷给道具(id, "魔兽要诀", 1)
					elseif 奖励参数 <= 550 then
						奖励名称[id] = 快捷给道具(id, "魔兽残卷", 1)
					elseif 奖励参数 <= 100 then
						奖励名称[id] = 快捷给道具(id, "五宝", 1)
					else
						添加仙玉(取随机数(500, 1000), 玩家数据[id].账号, id, "散财童子")
					end
				end
			end
		end
	end

	if 删 then
		地图处理类:删除单位(任务数据[任务id].地图编号, 任务数据[任务id].单位编号)

		任务数据[任务id] = nil
	else
		任务数据[任务id].战斗 = nil
	end
end

function 任务处理类:设置渡劫任务(id)
	local 任务id = "渡劫_8800_" .. os.time() .. 取随机数(88, 99999999)
	任务数据[任务id] = {
		y = 76,
		武器 = "弑皇",
		方向 = 0,
		结束 = 999999,
		类型 = 8800,
		地图编号 = 1092,
		武器染色方案 = 2051,
		武器等级 = 160,
		模型 = "神天兵",
		名称 = "天冷曰妄空",
		x = 51,
		称谓 = "狂暴之力",
		id = 任务id,
		玩家id = id,
		起始 = os.time(),
		武器染色组 = {
			[2.0] = 0,
			[1.0] = 1
		},
		地图名称 = 取地图名称(1092)
	}
	玩家数据[id].角色.数据.剧情.渡劫 = 玩家数据[id].角色.数据.剧情.渡劫 or 0
	玩家数据[id].角色.数据.任务进行.渡劫0 = true

	玩家数据[id].角色:添加任务(任务id)
	地图处理类:添加单位(任务id)
end

function 任务处理类:取渡劫任务(id)
	if 玩家数据[id].角色.数据.剧情.渡劫 == 0 then
		rwid = 玩家数据[id].角色:取任务(8800)

		if rwid ~= 0 then
			玩家数据[id].角色:取消任务(rwid)
		end

		self:设置渡劫任务(id)
	elseif 玩家数据[id].角色.数据.剧情.渡劫 == 1 then
		local 任务id = id .. "_8801_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999)
		local 地图 = 1179
		任务数据[任务id] = {
			变异 = true,
			y = 50,
			方向 = 1,
			结束 = 999999,
			类型 = 8801,
			模型 = "知了王",
			名称 = "神秘妖怪",
			x = 55,
			id = 任务id,
			玩家id = id,
			起始 = os.time(),
			地图编号 = 地图,
			地图名称 = 取地图名称(地图)
		}

		地图处理类:添加单位(任务id)
	elseif 玩家数据[id].角色.数据.剧情.渡劫 == 2 then
		local 任务id = id .. "_8802_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999)
		local 地图 = 1187
		任务数据[任务id] = {
			y = 28,
			变异 = true,
			类型 = 8802,
			结束 = 999999,
			模型 = "知了王",
			名称 = "蚩尤之子",
			x = 58,
			id = 任务id,
			玩家id = id,
			起始 = os.time(),
			地图编号 = 地图,
			地图名称 = 取地图名称(地图)
		}

		地图处理类:添加单位(任务id)
	elseif 玩家数据[id].角色.数据.剧情.渡劫 == 3 then
		local 任务id = id .. "_8803_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999)
		local 地图 = 1178
		任务数据[任务id] = {
			y = 37,
			方向 = 0,
			变异 = true,
			结束 = 999999,
			类型 = 8803,
			模型 = "知了王",
			名称 = "蚩尤之子",
			x = 82,
			id = 任务id,
			玩家id = id,
			起始 = os.time(),
			地图编号 = 地图,
			地图名称 = 取地图名称(地图)
		}

		地图处理类:添加单位(任务id)

		任务id = id .. "_8804_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999)
		任务数据[任务id] = {
			y = 41,
			武器 = "弑皇",
			方向 = 3,
			结束 = 999999,
			类型 = 8804,
			武器染色方案 = 2051,
			武器等级 = 160,
			模型 = "神天兵",
			名称 = "天冷曰妄空",
			x = 76,
			称谓 = "狂暴之力",
			id = 任务id,
			玩家id = id,
			起始 = os.time(),
			武器染色组 = {
				[2.0] = 0,
				[1.0] = 1
			},
			地图编号 = 地图,
			地图名称 = 取地图名称(地图)
		}

		地图处理类:添加单位(任务id)
	elseif 玩家数据[id].角色.数据.剧情.渡劫 == 4 then
		local 任务id = id .. "_8805_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999)
		local 地图 = 1187
		任务数据[任务id] = {
			y = 61,
			变异 = true,
			类型 = 8805,
			结束 = 999999,
			模型 = "知了王",
			名称 = "蚩尤之子",
			x = 108,
			id = 任务id,
			玩家id = id,
			起始 = os.time(),
			地图编号 = 地图,
			地图名称 = 取地图名称(地图)
		}

		地图处理类:添加单位(任务id)
	elseif 玩家数据[id].角色.数据.剧情.渡劫 == 5 then
		local 任务id = id .. "_8806_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999)
		local 地图 = 1178
		任务数据[任务id] = {
			y = 30,
			变异 = true,
			类型 = 8806,
			结束 = 999999,
			模型 = "蛟龙",
			名称 = "龙神",
			x = 116,
			id = 任务id,
			玩家id = id,
			起始 = os.time(),
			地图编号 = 地图,
			地图名称 = 取地图名称(地图)
		}

		地图处理类:添加单位(任务id)
	elseif 玩家数据[id].角色.数据.剧情.渡劫 == 6 then
		local 任务id = id .. "_8807_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999)
		local 地图 = 1210
		任务数据[任务id] = {
			y = 11,
			方向 = 1,
			变异 = true,
			结束 = 999999,
			类型 = 8807,
			模型 = "知了王",
			名称 = "蚩尤之子",
			x = 177,
			id = 任务id,
			玩家id = id,
			起始 = os.time(),
			地图编号 = 地图,
			地图名称 = 取地图名称(地图)
		}

		地图处理类:添加单位(任务id)

		任务id = id .. "_8808_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999)
		任务数据[任务id] = {
			y = 15,
			武器 = "弑皇",
			方向 = 3,
			结束 = 999999,
			类型 = 8808,
			武器染色方案 = 2051,
			武器等级 = 160,
			模型 = "神天兵",
			名称 = "天冷曰妄空",
			x = 171,
			称谓 = "狂暴之力",
			id = 任务id,
			玩家id = id,
			起始 = os.time(),
			武器染色组 = {
				[2.0] = 0,
				[1.0] = 1
			},
			地图编号 = 地图,
			地图名称 = 取地图名称(地图)
		}

		地图处理类:添加单位(任务id)

		local 随机造型 = {
			"剑侠客",
			"逍遥生",
			"飞燕女",
			"英女侠",
			"神天兵",
			"龙太子",
			"舞天姬",
			"玄彩娥",
			"虎头怪",
			"巨魔王",
			"狐美人",
			"骨精灵"
		}
		local 随机名称 = {
			"大唐官府弟子",
			"化生寺弟子",
			"女儿村弟子",
			"方寸山弟子",
			"五庄观弟子",
			"天宫弟子",
			"龙宫弟子",
			"普陀山弟子",
			"狮驼岭弟子",
			"魔王寨弟子",
			"盘丝洞弟子",
			"阴曹地府弟子"
		}

		for i = 1, #随机造型 do
			任务id = id .. "_8809_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999) .. i
			local x坐标 = 取随机数(156, 166)
			local y坐标 = 取随机数(15, 27)
			local 造型 = 随机造型[i]
			local 武器造型 = 取高级地煞星武器造型(造型)
			任务数据[任务id] = {
				方向 = 3,
				结束 = 999999,
				类型 = 8809,
				武器染色方案 = 2051,
				id = 任务id,
				起始 = os.time(),
				玩家id = id,
				队伍组 = {},
				名称 = 随机名称[i],
				模型 = 造型,
				武器 = 武器造型.武器,
				武器等级 = 武器造型.级别,
				武器染色组 = {
					[1.0] = 1,
					[2.0] = 0
				},
				x = x坐标,
				y = y坐标,
				地图编号 = 地图,
				地图名称 = 取地图名称(地图)
			}

			地图处理类:添加单位(任务id)
		end
	elseif 玩家数据[id].角色.数据.剧情.渡劫 == 7 then
		local 任务id = id .. "_8810_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999)
		local 地图 = 1208
		任务数据[任务id] = {
			y = 36,
			方向 = 1,
			变异 = true,
			结束 = 999999,
			类型 = 8810,
			模型 = "知了王",
			名称 = "蚩尤之子",
			x = 45,
			id = 任务id,
			玩家id = id,
			起始 = os.time(),
			地图编号 = 地图,
			地图名称 = 取地图名称(地图)
		}

		地图处理类:添加单位(任务id)
	elseif 玩家数据[id].角色.数据.剧情.渡劫 == 9 then
		local 任务id = id .. "_8811_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999)
		local 地图 = 1210
		任务数据[任务id] = {
			y = 15,
			武器 = "弑皇",
			方向 = 3,
			结束 = 999999,
			类型 = 8811,
			武器染色方案 = 2051,
			武器等级 = 160,
			模型 = "神天兵",
			名称 = "天冷曰妄空",
			x = 171,
			称谓 = "狂暴之力",
			id = 任务id,
			玩家id = id,
			起始 = os.time(),
			武器染色组 = {
				[2.0] = 0,
				[1.0] = 1
			},
			地图编号 = 地图,
			地图名称 = 取地图名称(地图)
		}

		地图处理类:添加单位(任务id)

		任务id = id .. "_8812_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999)
		任务数据[任务id] = {
			y = 11,
			方向 = 1,
			变异 = true,
			结束 = 999999,
			类型 = 8812,
			模型 = "知了王",
			名称 = "蚩尤之子",
			x = 177,
			id = 任务id,
			玩家id = id,
			起始 = os.time(),
			地图编号 = 地图,
			地图名称 = 取地图名称(地图)
		}

		地图处理类:添加单位(任务id)

		任务id = id .. "_8813_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999)
		local 门派 = 玩家数据[id].角色.数据.门派
		local 师傅造型 = 取门派师傅名称(门派)
		任务数据[任务id] = {
			方向 = 0,
			类型 = 8813,
			结束 = 999999,
			y = 10,
			x = 172,
			id = 任务id,
			玩家id = id,
			起始 = os.time(),
			名称 = 师傅造型,
			模型 = 师傅造型,
			地图编号 = 地图,
			地图名称 = 取地图名称(地图)
		}

		地图处理类:添加单位(任务id)

		local 随机造型 = {
			"剑侠客",
			"逍遥生",
			"飞燕女",
			"英女侠",
			"神天兵",
			"龙太子",
			"舞天姬",
			"玄彩娥",
			"虎头怪",
			"巨魔王",
			"狐美人",
			"骨精灵"
		}
		local 随机名称 = {
			"大唐官府弟子",
			"化生寺弟子",
			"女儿村弟子",
			"方寸山弟子",
			"五庄观弟子",
			"天宫弟子",
			"龙宫弟子",
			"普陀山弟子",
			"狮驼岭弟子",
			"魔王寨弟子",
			"盘丝洞弟子",
			"阴曹地府弟子"
		}

		for i = 1, #随机造型 do
			任务id = id .. "_8814_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999) .. i
			local x坐标 = 取随机数(156, 174)
			local y坐标 = 取随机数(15, 27)
			local 造型 = 随机造型[i]
			local 武器造型 = 取高级地煞星武器造型(造型)
			任务数据[任务id] = {
				方向 = 3,
				结束 = 999999,
				类型 = 8814,
				武器染色方案 = 2051,
				id = 任务id,
				起始 = os.time(),
				玩家id = id,
				队伍组 = {},
				名称 = 随机名称[i],
				模型 = 造型,
				武器 = 武器造型.武器,
				武器等级 = 武器造型.级别,
				武器染色组 = {
					[1.0] = 1,
					[2.0] = 0
				},
				x = x坐标,
				y = y坐标,
				地图编号 = 地图,
				地图名称 = 取地图名称(地图)
			}

			地图处理类:添加单位(任务id)
		end
	elseif 玩家数据[id].角色.数据.剧情.渡劫 == 10 then
		local 任务id = id .. "_8815_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999)
		local 地图 = 1208
		任务数据[任务id] = {
			y = 36,
			方向 = 1,
			变异 = true,
			结束 = 999999,
			类型 = 8815,
			模型 = "知了王",
			名称 = "蚩尤之子",
			x = 45,
			id = 任务id,
			玩家id = id,
			起始 = os.time(),
			地图编号 = 地图,
			地图名称 = 取地图名称(地图)
		}

		地图处理类:添加单位(任务id)
	elseif 玩家数据[id].角色.数据.剧情.渡劫 == 11 then
		local 任务id = id .. "_8816_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999)
		local 地图 = 1042
		任务数据[任务id] = {
			y = 38,
			方向 = 1,
			变异 = true,
			结束 = 999999,
			类型 = 8816,
			模型 = "知了王",
			名称 = "蚩尤之子",
			x = 36,
			id = 任务id,
			玩家id = id,
			起始 = os.time(),
			地图编号 = 地图,
			地图名称 = 取地图名称(地图)
		}

		地图处理类:添加单位(任务id)
	elseif 玩家数据[id].角色.数据.剧情.渡劫 == 12 then
		local 任务id = id .. "_8817_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999)
		local 地图 = 1042
		local 门派 = 玩家数据[id].角色.数据.门派
		local 师傅造型 = 取门派师傅名称(门派)
		任务数据[任务id] = {
			方向 = 0,
			类型 = 8817,
			结束 = 999999,
			y = 38,
			x = 29,
			id = 任务id,
			玩家id = id,
			起始 = os.time(),
			名称 = 师傅造型,
			模型 = 师傅造型,
			地图编号 = 地图,
			地图名称 = 取地图名称(地图)
		}

		地图处理类:添加单位(任务id)

		local 随机造型 = {
			"剑侠客",
			"逍遥生",
			"飞燕女",
			"英女侠",
			"神天兵",
			"龙太子",
			"舞天姬",
			"玄彩娥",
			"虎头怪",
			"巨魔王",
			"狐美人",
			"骨精灵"
		}
		local 随机名称 = {
			"大唐官府弟子",
			"化生寺弟子",
			"女儿村弟子",
			"方寸山弟子",
			"五庄观弟子",
			"天宫弟子",
			"龙宫弟子",
			"普陀山弟子",
			"狮驼岭弟子",
			"魔王寨弟子",
			"盘丝洞弟子",
			"阴曹地府弟子"
		}

		for i = 1, #随机造型 do
			任务id = id .. "_8818_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999) .. i
			local x坐标 = 取随机数(17, 23)
			local y坐标 = 取随机数(29, 48)
			local 造型 = 随机造型[i]
			local 武器造型 = 取高级地煞星武器造型(造型)
			任务数据[任务id] = {
				方向 = 3,
				结束 = 999999,
				类型 = 8818,
				武器染色方案 = 2051,
				id = 任务id,
				起始 = os.time(),
				玩家id = id,
				队伍组 = {},
				名称 = 随机名称[i],
				模型 = 造型,
				武器 = 武器造型.武器,
				武器等级 = 武器造型.级别,
				武器染色组 = {
					[1.0] = 1,
					[2.0] = 0
				},
				x = x坐标,
				y = y坐标,
				地图编号 = 地图,
				地图名称 = 取地图名称(地图)
			}

			地图处理类:添加单位(任务id)
		end
	elseif 玩家数据[id].角色.数据.剧情.渡劫 == 13 then
		local 任务id = id .. "_8819_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999)
		local 地图 = 1206
		任务数据[任务id] = {
			模型 = "蚩尤",
			方向 = 0,
			类型 = 8819,
			结束 = 999999,
			y = 76,
			名称 = "蚩尤幻影",
			x = 123,
			id = 任务id,
			玩家id = id,
			起始 = os.time(),
			地图编号 = 地图,
			地图名称 = 取地图名称(地图)
		}

		地图处理类:添加单位(任务id)

		任务id = id .. "_8820_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999)
		任务数据[任务id] = {
			模型 = "知了王",
			方向 = 1,
			类型 = 8820,
			结束 = 999999,
			y = 75,
			名称 = "蚩尤之子",
			x = 133,
			id = 任务id,
			玩家id = id,
			起始 = os.time(),
			地图编号 = 地图,
			地图名称 = 取地图名称(地图)
		}

		地图处理类:添加单位(任务id)

		local 造型 = {
			"吸血鬼",
			"炎魔神",
			"噬天虎",
			"夜罗刹"
		}

		for i = 1, #造型 do
			任务id = id .. "_8821_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999) .. i
			local x坐标 = 取随机数(113, 125)
			local y坐标 = 取随机数(60, 70)
			local 造型 = 造型[i]
			任务数据[任务id] = {
				名称 = "蚩尤部下",
				方向 = 0,
				结束 = 999999,
				类型 = 8821,
				id = 任务id,
				起始 = os.time(),
				玩家id = id,
				队伍组 = {},
				模型 = 造型,
				x = x坐标,
				y = y坐标,
				地图编号 = 地图,
				地图名称 = 取地图名称(地图)
			}

			地图处理类:添加单位(任务id)
		end
	end

	玩家数据[id].角色.数据.任务进行["渡劫" .. 玩家数据[id].角色.数据.剧情.渡劫] = true
end

function 任务处理类:侠义任务(id)
	local 任务物品 = {
		"魔兽要诀",
		"召唤兽内丹",
		"怪物卡片",
		"物品",
		"鬼谷子"
	}
	local 任务id = id .. "_346_" .. os.time()
	任务数据[任务id] = {
		物品 = "金柳露",
		结束 = 1e+17,
		完成 = false,
		物品类型 = "物品",
		类型 = 346,
		id = 任务id,
		起始 = os.time(),
		玩家id = id,
		队伍组 = {}
	}
	local 物品目标 = 取随机数(1, #任务物品)
	local 所需物品 = 任务物品[物品目标]
	任务数据[任务id].物品类型 = 所需物品

	if 所需物品 == "魔兽要诀" then
		任务数据[任务id].物品 = 取低级要诀()
	elseif 所需物品 == "召唤兽内丹" then
		任务数据[任务id].物品 = 取内丹()
	elseif 所需物品 == "怪物卡片" then
		local 数量 = 取随机数(1, 8)
		任务数据[任务id].物品 = 变身卡范围[数量][取随机数(1, #变身卡范围[数量])]
	elseif 所需物品 == "鬼谷子" then
		local 阵法数据 = {
			"天覆阵",
			"龙飞阵",
			"风扬阵",
			"虎翼阵",
			"云垂阵",
			"鸟翔阵",
			"地载阵",
			"蛇蟠阵",
			"鹰啸阵",
			"雷绝阵"
		}
		任务数据[任务id].物品 = 阵法数据[取随机数(1, #阵法数据)]
	else
		local 随机 = 取随机数(1, 4)

		if 随机 == 1 then
			local 强化数据 = {
				"青龙石",
				"白虎石",
				"玄武石",
				"朱雀石"
			}
			任务数据[任务id].物品 = 强化数据[取随机数(1, #强化数据)]
		elseif 随机 == 2 then
			任务数据[任务id].物品 = "九转金丹"
		elseif 随机 == 3 then
			任务数据[任务id].物品 = "修炼果"
		else
			任务数据[任务id].物品 = "金柳露"
		end
	end

	if 玩家数据[id].角色.数据.侠义次数 == nil then
		玩家数据[id].角色.数据.侠义次数 = 1
	end

	玩家数据[id].角色:添加任务(任务id)
	发送数据(玩家数据[id].连接id, 39)
	常规提示(id, "#Y/你获得了侠义任务")
	发送数据(玩家数据[id].连接id, 1501, {
		名称 = "袁天罡",
		模型 = "袁天罡",
		对话 = format("最近缺少#G/%s#R/%s#W，麻烦少侠帮我找来。", 任务数据[任务id].物品类型, 取装备详细说明(任务数据[任务id].物品))
	})
end

function 任务处理类:完成侠义任务(任务id, id)
	if 任务数据[任务id] == nil then
		return
	end

	local 经验 = 200000
	local 银子 = 50000

	玩家数据[id].角色:添加经验(经验, "侠义任务", 1)
	玩家数据[id].角色:添加银子(银子, "侠义任务", 1)

	玩家数据[id].角色.数据.侠义积分 = 玩家数据[id].角色.数据.侠义积分 + 1

	if 玩家数据[id].角色.数据.侠义次数 == 10 then
		玩家数据[id].角色.数据.侠义次数 = 0

		玩家数据[id].道具:给予道具(id, "高级魔兽要诀")
	end

	玩家数据[id].角色.数据.侠义次数 = 玩家数据[id].角色.数据.侠义次数 + 1

	玩家数据[id].角色:取消任务(任务id)

	任务数据[任务id] = nil

	常规提示(id, "#Y/完成侠义任务，获得了#R1#Y点侠义积分，当前侠义积分为：#R" .. 玩家数据[id].角色.数据.侠义积分)
end

function 任务处理类:福利宝箱(id)
	local 地图范围 = {
		1003,
		1506,
		1501,
		1876,
		1001,
		1070,
		1193
	}
	local x待发送数据 = {}

	for i = 1, #地图范围 do
		local 临时数量 = 取随机数(10, 20)
		local 地图 = 地图范围[i]
		x待发送数据[地图] = {}

		for n = 1, 临时数量 do
			local 任务id = 地图 .. "_347_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999) .. "_" .. n
			随机序列 = 随机序列 + 1
			local xy = 地图处理类.地图坐标[地图]:取随机点()
			任务数据[任务id] = {
				玩家id = 0,
				名称 = "福利宝箱",
				行走开关 = true,
				结束 = 300,
				类型 = 347,
				模型 = "宝箱",
				id = 任务id,
				起始 = os.time(),
				队伍组 = {},
				x = xy.x,
				y = xy.y,
				地图编号 = 地图,
				地图名称 = 取地图名称(地图)
			}

			table.insert(x待发送数据[地图], 地图处理类:批量添加单位(任务id))
		end
	end

	for i = 1, #地图范围 do
		local 地图编号 = 地图范围[i]

		for n, v in pairs(地图处理类.地图玩家[地图编号]) do
			if 地图处理类:取同一地图(地图编号, id, n, 1) then
				发送数据(玩家数据[n].连接id, 1021, x待发送数据[地图编号])
			end
		end
	end

	x待发送数据 = {}

	广播消息({
		频道 = "xt",
		内容 = format("#G天降福缘、一大批福利宝箱掉落在#Y桃源村、东海湾、建邺城、江南野外、长安城、长寿村、南岭山#G，请有缘人尽快去拾取。" .. "#" .. 取随机数(1, 110))
	})
end

function 任务处理类:刷新门派入侵(id)
	local 地图门派 = {
		["1140"] = "pts",
		["1138"] = "sm",
		["1122"] = "df",
		["1513"] = "ps",
		["1131"] = "st",
		["1002"] = "hs",
		["1135"] = "fc",
		["1198"] = "dt",
		["1150"] = "lb",
		["1142"] = "ne",
		["1512"] = "mw",
		["1146"] = "wz",
		["1139"] = "wd",
		["1116"] = "lg",
		["1111"] = "tg"
	}
	local 地图范围1 = {
		1198,
		1002,
		1135,
		1513,
		1111,
		1142,
		1122,
		1140,
		1138,
		1139,
		1150,
		1512,
		1146,
		1131,
		1116
	}
	local 地图范围 = {}

	for i = 1, 7 do
		local aa = 取随机数(1, #地图范围1)
		地图范围[#地图范围 + 1] = 地图范围1[aa]

		table.remove(地图范围1, aa)
	end

	local 战斗模型 = {
		"强盗",
		"山贼"
	}
	local x待发送数据 = {}

	for i = 1, #地图范围 do
		local 临时数量 = 取随机数(10, 15)
		local 地图 = 地图范围[i]
		x待发送数据[地图] = {}

		for n = 1, 临时数量 do
			local 任务id = 地图 .. "_100864_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999) .. "_" .. n
			随机序列 = 随机序列 + 1
			local xy = 地图处理类.地图坐标[地图]:取随机点()
			local mx = 战斗模型[ygsj(#战斗模型)]
			任务数据[任务id] = {
				玩家id = 0,
				行走开关 = false,
				变异 = false,
				结束 = 1200,
				类型 = 100864,
				id = 任务id,
				起始 = os.time(),
				队伍组 = {},
				名称 = "入侵的" .. mx,
				模型 = mx,
				x = xy.x,
				y = xy.y,
				地图编号 = 地图,
				地图名称 = 取地图名称(地图),
				门派 = 取地图名称(地图)
			}

			table.insert(x待发送数据[地图], 地图处理类:批量添加单位(任务id))
		end
	end

	for i = 1, #地图范围 do
		local 地图编号 = 地图范围[i]

		for n, v in pairs(地图处理类.地图玩家[地图编号]) do
			if 地图处理类:取同一地图(地图编号, id, n, 1) then
				发送数据(玩家数据[n].连接id, 1021, x待发送数据[地图编号])
			end
		end

		广播门派消息({
			内容 = format("#P(门派入侵)#Y一群不知从何而来的#R入侵者#Y出现了！#" .. 取随机数(1, 110)),
			频道 = 地图门派[tostring(地图编号)]
		}, 取地图名称(地图编号))
	end

	x待发送数据 = {}
end

function 任务处理类:突厥精英(id)
	local 地图范围 = DeepCopy(刷怪地图范围.突厥精英)
	local 战斗模型 = {
		"进阶黑山老妖"
	}
	local x待发送数据 = {}

	for i = 1, #地图范围 do
		local 临时数量 = 取随机数(30, 30)
		local 地图 = 地图范围[i]
		x待发送数据[地图] = {}

		for n = 1, 临时数量 do
			local 任务id = 地图 .. "_100863_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999) .. "_" .. n
			随机序列 = 随机序列 + 1
			local xy = 地图处理类.地图坐标[地图]:取随机点()
			任务数据[任务id] = {
				玩家id = 0,
				名称 = "突厥精英",
				行走开关 = true,
				变异 = true,
				结束 = 900,
				类型 = 100863,
				id = 任务id,
				起始 = os.time(),
				队伍组 = {},
				模型 = 战斗模型[ygsj(#战斗模型)],
				x = xy.x,
				y = xy.y,
				地图编号 = 地图,
				地图名称 = 取地图名称(地图)
			}

			table.insert(x待发送数据[地图], 地图处理类:批量添加单位(任务id))
		end
	end

	for i = 1, #地图范围 do
		local 地图编号 = 地图范围[i]

		for n, v in pairs(地图处理类.地图玩家[地图编号]) do
			if 地图处理类:取同一地图(地图编号, id, n, 1) then
				发送数据(玩家数据[n].连接id, 1021, x待发送数据[地图编号])
			end
		end
	end

	local 地图名称 = ""

	for i = 1, #地图范围 do
		local dt = 取地图名称(地图范围[i])

		if i == 1 then
			地图名称 = dt
		else
			地图名称 = 地图名称 .. "、" .. dt
		end
	end

	x待发送数据 = {}

	广播消息({
		频道 = "xt",
		内容 = format("#P(官府来报)#G凶恶的#R突厥精英#G正在#Y%s#G游荡徘徊、特此广邀天下好汉前去杀敌换取军功！#" .. 取随机数(1, 110), 地图名称)
	})
end

function 任务处理类:突厥探子(id)
	local 地图范围 = DeepCopy(刷怪地图范围.突厥探子)
	local 战斗模型 = {
		"强盗",
		"山贼"
	}
	local x待发送数据 = {}

	for i = 1, #地图范围 do
		local 临时数量 = 取随机数(50, 50)
		local 地图 = 地图范围[i]
		x待发送数据[地图] = {}

		for n = 1, 临时数量 do
			local 任务id = 地图 .. "_100862_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999) .. "_" .. n
			随机序列 = 随机序列 + 1
			local xy = 地图处理类.地图坐标[地图]:取随机点()
			任务数据[任务id] = {
				玩家id = 0,
				名称 = "突厥探子",
				行走开关 = true,
				变异 = true,
				结束 = 900,
				类型 = 100862,
				id = 任务id,
				起始 = os.time(),
				队伍组 = {},
				模型 = 战斗模型[ygsj(#战斗模型)],
				x = xy.x,
				y = xy.y,
				地图编号 = 地图,
				地图名称 = 取地图名称(地图)
			}

			table.insert(x待发送数据[地图], 地图处理类:批量添加单位(任务id))
		end
	end

	for i = 1, #地图范围 do
		local 地图编号 = 地图范围[i]

		for n, v in pairs(地图处理类.地图玩家[地图编号]) do
			if 地图处理类:取同一地图(地图编号, id, n, 1) then
				发送数据(玩家数据[n].连接id, 1021, x待发送数据[地图编号])
			end
		end
	end

	local 地图名称 = ""

	for i = 1, #地图范围 do
		local dt = 取地图名称(地图范围[i])

		if i == 1 then
			地图名称 = dt
		else
			地图名称 = 地图名称 .. "、" .. dt
		end
	end

	x待发送数据 = {}

	广播消息({
		频道 = "xt",
		内容 = format("#P(前线战报)#G一大批#R突厥探子#G在#Y%s#G出没、特此广邀天下好汉前去查探杀敌换取军功！#" .. 取随机数(1, 110), 地图名称)
	})
end

function 任务处理类:修炼宝箱(id)
	local 地图范围1 = 列表打乱重组(野外地图列表)
	local 地图范围 = {}

	for i = 1, 10 do
		地图范围[i] = 地图范围1[i]
	end

	local x待发送数据 = {}

	for i = 1, #地图范围 do
		local 临时数量 = 取随机数(10, 20)
		local 地图 = 地图范围[i]
		x待发送数据[地图] = {}

		for n = 1, 临时数量 do
			local 任务id = 地图 .. "_100861_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999) .. "_" .. n
			随机序列 = 随机序列 + 1
			local xy = 地图处理类.地图坐标[地图]:取随机点()
			任务数据[任务id] = {
				玩家id = 0,
				名称 = "修炼宝箱",
				行走开关 = false,
				结束 = 600,
				类型 = 100861,
				模型 = "宝箱",
				id = 任务id,
				起始 = os.time(),
				队伍组 = {},
				x = xy.x,
				y = xy.y,
				地图编号 = 地图,
				地图名称 = 取地图名称(地图)
			}

			table.insert(x待发送数据[地图], 地图处理类:批量添加单位(任务id))
		end
	end

	for i = 1, #地图范围 do
		local 地图编号 = 地图范围[i]

		for n, v in pairs(地图处理类.地图玩家[地图编号]) do
			if 地图处理类:取同一地图(地图编号, id, n, 1) then
				发送数据(玩家数据[n].连接id, 1021, x待发送数据[地图编号])
			end
		end
	end

	local 地图名称 = ""

	for i = 1, #地图范围 do
		local dt = 取地图名称(地图范围[i])

		if i == 1 then
			地图名称 = dt
		else
			地图名称 = 地图名称 .. "、" .. dt
		end
	end

	x待发送数据 = {}

	广播消息({
		频道 = "xt",
		内容 = format("#G一阵狂风席卷、一大批修炼宝箱掉落在#Y%s#G、需要的少侠可尽快去拾取" .. "#" .. 取随机数(1, 110), 地图名称)
	})
end

function 任务处理类:完成福利宝箱(任务id, id组)
	if 任务数据[任务id] == nil then
		return
	end

	for n = 1, #id组 do
		local id = id组[n]

		if 队伍处理类:取是否助战(玩家数据[id].队伍, n) == 0 then
			if 掉率模式 == 1 then
				取福利宝箱奖励(id, true)
			else
				if 添加活动次数(id, "福利宝箱") == false then
					return
				end

				取福利宝箱奖励(id, true)
			end
		end
	end

	地图处理类:删除单位(任务数据[任务id].地图编号, 任务数据[任务id].单位编号)

	任务数据[任务id] = nil
end

function 任务处理类:倾国倾城()
	local 地图范围 = {
		1876,
		1041,
		1235
	}
	local x待发送数据 = {}

	for i = 1, #地图范围 do
		local 临时数量 = 取随机数(10, 10)
		local 地图 = 地图范围[i]
		x待发送数据[地图] = {}

		for n = 1, 临时数量 do
			local 任务id = 地图 .. "_348_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999) .. "_" .. n
			随机序列 = 随机序列 + 1
			local xy = 地图处理类.地图坐标[地图]:取随机点()
			local 模型范围 = {
				"画魂"
			}
			local 模型名称范围 = {
				"貂蝉",
				"甄宓",
				"小乔",
				"大乔",
				"蔡文姬",
				"王昭君",
				"妲己",
				"李清照",
				"杨玉环",
				"陈圆圆"
			}
			local 名称模型 = 模型名称范围[取随机数(1, #模型名称范围)]
			local 模型 = 模型范围[取随机数(1, #模型范围)]
			任务数据[任务id] = {
				玩家id = 0,
				行走开关 = true,
				变异 = true,
				结束 = 3600,
				显示饰品 = true,
				类型 = 348,
				id = 任务id,
				起始 = os.time(),
				队伍组 = {},
				名称 = 名称模型,
				模型 = 模型,
				x = xy.x,
				y = xy.y,
				地图编号 = 地图,
				地图名称 = 取地图名称(地图)
			}

			table.insert(x待发送数据[地图], 地图处理类:批量添加单位(任务id))
		end
	end

	for i = 1, #地图范围 do
		local 地图编号 = 地图范围[i]

		for n, v in pairs(地图处理类.地图玩家[地图编号]) do
			if 地图处理类:取同一地图(地图编号, id, n, 1) then
				发送数据(玩家数据[n].连接id, 1021, x待发送数据[地图编号])
			end
		end
	end

	x待发送数据 = {}

	广播消息({
		频道 = "xt",
		内容 = format("#G听附近的村民说，南岭山、子母河、丝绸之路附近传来了美妙动听的歌声，有兴趣的少侠可以前往一探究竟。")
	})
end

function 任务处理类:美食专家()
	local 地图范围 = {
		1003,
		1506,
		1501,
		1092
	}
	local x待发送数据 = {}

	for i = 1, #地图范围 do
		local 临时数量 = 取随机数(20, 20)
		local 地图 = 地图范围[i]
		x待发送数据[地图] = {}

		for n = 1, 临时数量 do
			local 任务id = 地图 .. "_349_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999) .. "_" .. n
			随机序列 = 随机序列 + 1
			local xy = 地图处理类.地图坐标[地图]:取随机点()
			local 模型范围 = {
				"赌徒",
				"山贼",
				"强盗"
			}
			local 模型名称范围 = {
				"贪吃的食客"
			}
			local 名称模型 = 模型名称范围[取随机数(1, #模型名称范围)]
			local 模型 = 模型范围[取随机数(1, #模型范围)]
			任务数据[任务id] = {
				玩家id = 0,
				行走开关 = true,
				结束 = 3600,
				显示饰品 = true,
				类型 = 349,
				id = 任务id,
				起始 = os.time(),
				队伍组 = {},
				名称 = 名称模型,
				模型 = 模型,
				x = xy.x,
				y = xy.y,
				地图编号 = 地图,
				地图名称 = 取地图名称(地图)
			}

			table.insert(x待发送数据[地图], 地图处理类:批量添加单位(任务id))
		end
	end

	for i = 1, #地图范围 do
		local 地图编号 = 地图范围[i]

		for n, v in pairs(地图处理类.地图玩家[地图编号]) do
			if 地图处理类:取同一地图(地图编号, id, n, 1) then
				发送数据(玩家数据[n].连接id, 1021, x待发送数据[地图编号])
			end
		end
	end

	x待发送数据 = {}

	广播消息({
		频道 = "xt",
		内容 = format("#G一群贪吃的食客在各地抢掠美食，请各位少侠赶紧前去阻止。")
	})
end

function 任务处理类:完成倾国倾城(任务id, id组)
	if 任务数据[任务id] == nil then
		return
	end

	local 经验 = 100000
	local 银子 = 50000

	for n = 1, #id组 do
		local id = id组[n]

		if 队伍处理类:取是否助战(玩家数据[id].队伍, n) == 0 then
			local 平均等级 = 取队伍平均等级(玩家数据[id].队伍, id)

			玩家数据[id].角色:添加经验(经验, "倾国倾城", 1)
			玩家数据[id].角色:添加银子(银子, "倾国倾城", 1)
			召唤兽添加经验(math.floor(经验 * 0.8), id, "倾国倾城")

			local 奖励参数 = ygsj()

			if 奖励参数 <= 68 then
			elseif 奖励参数 <= 98 then
				奖励名称[id] = 快捷给道具(id, "高级魔兽要诀", 1)

				广播消息({
					频道 = "xt",
					内容 = format("#S(倾国倾城)#R/%s#Y与美女们拼酒时，成功打跑了前来捣乱的抠脚大汉，获得小姐姐们奖励#G/%s#Y" .. "#" .. 取随机数(1, 110), 玩家数据[id].角色.数据.名称, 奖励名称[id])
				})
			else
				local 名称 = "元宵"

				玩家数据[id].道具:给予道具(id, 名称, 1)
				常规提示(id, "#Y/你获得了" .. 名称)
				广播消息({
					频道 = "xt",
					内容 = format("#S(倾国倾城)#R/%s#Y与美女们拼酒时，成功打跑了前来捣乱的抠脚大汉，获得小姐姐们奖励#G/%s#Y" .. "#" .. 取随机数(1, 110), 玩家数据[id].角色.数据.名称, 奖励名称[id])
				})
			end
		end
	end

	地图处理类:删除单位(任务数据[任务id].地图编号, 任务数据[任务id].单位编号)

	任务数据[任务id] = nil
end

function 任务处理类:完成美食专家(任务id, id组)
	if 任务数据[任务id] == nil then
		return
	end

	local 经验 = 100000
	local 银子 = 50000

	for n = 1, #id组 do
		local id = id组[n]

		if 队伍处理类:取是否助战(玩家数据[id].队伍, n) == 0 then
			玩家数据[id].角色:添加经验(经验, "美食专家", 1)
			玩家数据[id].角色:添加银子(银子, "美食专家", 1)
			召唤兽添加经验(math.floor(经验 * 0.8), id, "美食专家")

			local 奖励参数 = ygsj()

			if 奖励参数 <= 85 then
			elseif 奖励参数 <= 95 then
				local 物品表 = {
					"烤肉",
					"醉生梦死",
					"蛇胆酒",
					"百味酒",
					"梅花酒",
					"长寿面",
					"翡翠豆腐",
					"桂花丸",
					"佛跳墙",
					"佛跳墙",
					"佛跳墙",
					"珍露酒",
					"烤鸭",
					"烤鸭",
					"豆斋果",
					"烤鸭",
					"臭豆腐",
					"佛跳墙",
					"包子",
					"烤鸭",
					"虎骨酒",
					"包子",
					"女儿红"
				}
				local 名称 = 物品表[取随机数(1, #物品表)]

				玩家数据[id].道具:给予道具(id, 名称, 1, 100)
				常规提示(id, "#Y/你获得了" .. 名称)
				广播消息({
					频道 = "xt",
					内容 = format("#S(美食专家)#R/%s#Y少侠打散了袭扰村民的食客，顺便扒拉食客的衣物拿去典当，居然换到了#G/%s#Y奖励。" .. "#" .. 取随机数(1, 110), 玩家数据[id].角色.数据.名称, 奖励名称[id])
				})
			elseif 奖励参数 <= 96 then
				local 物品表 = {
					"金香玉",
					"小还丹",
					"千年保心丹",
					"风水混元丹",
					"定神香",
					"蛇蝎美人",
					"九转回魂丹",
					"佛光舍利子",
					"十香返生丸",
					"五龙丹"
				}
				local 名称 = 物品表[取随机数(1, #物品表)]

				玩家数据[id].道具:给予道具(id, 名称, 1, 150)
				常规提示(id, "#Y/你获得了" .. 名称)
				广播消息({
					频道 = "xt",
					内容 = format("#S(美食专家)#R/%s#Y少侠打散了袭扰村民的食客，顺便扒拉食客的衣物拿去典当，居然换到了#G/%s#Y奖励。" .. "#" .. 取随机数(1, 110), 玩家数据[id].角色.数据.名称, 奖励名称[id])
				})
			end
		end
	end

	地图处理类:删除单位(任务数据[任务id].地图编号, 任务数据[任务id].单位编号)

	任务数据[任务id] = nil
end

function 任务处理类:完成通天塔(任务id, id组)
	local 通天塔层数 = 通天塔数据[id组[1]].层数
	local 经验 = 100000
	local 银子 = 10000

	for n = 1, #id组 do
		local id = id组[n]

		if 队伍处理类:取是否助战(玩家数据[id].队伍, n) == 0 then
			玩家数据[id].角色:添加经验(经验 * (通天塔层数 + 1), "勇闯通天塔", 1)
			玩家数据[id].角色:添加银子(银子 * (通天塔层数 + 1), "勇闯通天塔", 1)
			召唤兽添加经验(math.floor(经验 * 0.8), id, "勇闯通天塔")

			奖励次数[id] = 取奖励次数(id)

			for i = 1, 奖励次数[id] do
				local 通知开关 = true
				奖励名称[id] = 快捷给道具(id, "坐骑内丹", 1)
				local 奖励参数 = ygsj()

				if 奖励参数 <= 1 then
					if ygsj() <= 50 then
						奖励名称[id] = 快捷给道具(id, "制造指南书", 15)
					else
						奖励名称[id] = 快捷给道具(id, "百炼精铁", 15)
					end
				elseif 奖励参数 <= 15 then
					奖励名称[id] = 快捷给道具(id, "炼兽真经", 5)
				elseif 奖励参数 <= 30 then
					奖励名称[id] = 快捷给道具(id, "高级藏宝图", 1)
				elseif 奖励参数 <= 45 then
					奖励名称[id] = 快捷给道具(id, "神兜兜", 取随机数(1, 2))
				elseif 奖励参数 <= 60 then
					奖励名称[id] = 快捷给道具(id, "元宵", 1)
				elseif 奖励参数 <= 75 then
					奖励名称[id] = 快捷给道具(id, "未激活的符石", 1)
				elseif 奖励参数 <= 100 then
					奖励名称[id] = 快捷给道具(id, "超级金柳露", 取随机数(5, 10))
				end

				if 通知开关 == true then
					广播消息({
						频道 = "xt",
						内容 = format("#S(勇闯通天塔)#R/%s#Y突破自我，勇闯通天塔，获得镇塔之神奖励的#G/%s#Y。" .. "#" .. 取随机数(1, 110), 玩家数据[id].角色.数据.名称, 奖励名称[id])
					})
				end

				if (通天塔数据[id].层数 + 1) / 10 == math.floor((通天塔数据[id].层数 + 1) / 10) then
					通知开关 = true
					奖励名称[id] = 快捷给道具(id, "坐骑内丹", 3)
					local 奖励参数 = ygsj()

					if 奖励参数 <= 5 then
						if ygsj() <= 50 then
							奖励名称[id] = 快捷给道具(id, "制造指南书", 取随机数(12, 14))
						else
							奖励名称[id] = 快捷给道具(id, "百炼精铁", 取随机数(12, 14))
						end
					elseif 奖励参数 <= 30 then
						奖励名称[id] = 快捷给道具(id, "高级魔兽要诀", 1)
					elseif 奖励参数 <= 70 then
						奖励名称[id] = 快捷给道具(id, "高级召唤兽内丹", 1)
					elseif 奖励参数 <= 100 then
						奖励名称[id] = 快捷给道具(id, "附魔宝珠", 取随机数(2, 3))
					end

					if 通知开关 == true then
						广播消息({
							频道 = "xt",
							内容 = format("#S(勇闯通天塔)#R" .. 玩家数据[id].角色.数据.名称 .. "#G神勇无比，在玩家#R" .. 玩家数据[id组[1]].角色.数据.名称 .. "#G带领下完成了通天塔#Y " .. 通天塔数据[id].层数 + 1 .. " #G层的挑战，距离通天之路,距离又近了一步！获得了镇塔之神奖励的#S" .. 奖励名称[id])
						})
					end
				end
			end
		end

		通天塔数据[id].层数 = 通天塔数据[id].层数 + 1
	end
end

function 任务处理类:添加贼王的线索任务(id)
	local 任务id = id .. "_350_" .. os.time()
	local 地图范围 = {
		1501,
		1092,
		1208,
		1070,
		1040,
		1226
	}
	local 地图 = 地图范围[取随机数(1, #地图范围)]
	local xy = 地图处理类.地图坐标[地图]:取随机点()
	local 名称 = "贼王"
	local 结束时间 = 7200
	任务数据[任务id] = {
		类型 = 350,
		模型 = "吸血鬼",
		领取人id = {
			id
		},
		id = 任务id,
		起始 = os.time(),
		结束 = 结束时间,
		玩家id = id,
		队伍组 = {},
		名称 = 名称,
		x = xy.x,
		y = xy.y,
		地图编号 = 地图,
		地图名称 = 取地图名称(地图)
	}

	玩家数据[id].角色:添加任务(任务id)
	发送数据(玩家数据[id].连接id, 39)
	发送数据(玩家数据[id].连接id, 1501, {
		名称 = "冷无情",
		模型 = "男人_衙役",
		对话 = format("据可靠情报，现有#Y/%s#W/逃到了#G/%s(%s,%s)#W/处，请你前往将其缉拿。此通缉犯实力不容小窥，请尽量寻找一些高人前来协助。", 任务数据[任务id].名称, 任务数据[任务id].地图名称, 任务数据[任务id].x, 任务数据[任务id].y)
	})
	地图处理类:添加单位(任务id)
end

function 任务处理类:完成贼王的线索(任务id, id组)
	if 任务数据[任务id] == nil then
		return
	end

	local 经验 = 50000
	local 银子 = 30000

	for n = 1, #id组 do
		local id = id组[n]

		if 队伍处理类:取是否助战(玩家数据[id].队伍, n) == 0 then
			if 掉率模式 == 1 then
				通用给奖励(id, {
					活跃度 = 5,
					经验 = {
						4000,
						4400
					},
					银子 = {
						1800,
						2200
					}
				}, "贼王的线索", nil, "不判断次数")
			else
				local 平均等级 = 取队伍平均等级(玩家数据[id].队伍, id)

				玩家数据[id].角色:添加经验(经验, "贼王的线索", 1)
				玩家数据[id].角色:添加银子(银子, "贼王的线索", 1)
				召唤兽添加经验(math.floor(经验 * 0.8), id, "贼王的线索")

				奖励次数[id] = 取奖励次数(id)

				for i = 1, 奖励次数[id] do
					local 通知开关 = true
					local 奖励参数 = ygsj()

					if 奖励参数 <= 30 then
						奖励名称[id] = 快捷给道具(id, 取宝石(), 5)
					elseif 奖励参数 <= 33 then
						奖励名称[id] = 快捷给道具(id, "元宵", 2)
					else
						奖励名称[id] = 快捷给道具(id, "五宝", 1)
					end

					if 通知开关 == true then
						广播消息({
							频道 = "xt",
							内容 = format("#S(贼王的线索)#R/%s#Y少侠勇武过人，一举拿下臭名远播的贼王，获得#G/5级%s#Y奖励" .. "#" .. 取随机数(1, 110), 玩家数据[id].角色.数据.名称, 奖励名称[id])
						})
					end
				end
			end
		end
	end

	地图处理类:删除单位(任务数据[任务id].地图编号, 任务数据[任务id].单位编号)

	任务数据[任务id] = nil
end

function 任务处理类:貔貅的羁绊()
	local 地图范围 = {
		1003,
		1506,
		1876,
		1193,
		1514
	}
	local x待发送数据 = {}

	for i = 1, #地图范围 do
		local 临时数量 = 取随机数(7, 7)
		local 地图 = 地图范围[i]
		x待发送数据[地图] = {}

		for n = 1, 临时数量 do
			local 任务id = 地图 .. "_351_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999) .. "_" .. n
			随机序列 = 随机序列 + 1
			local xy = 地图处理类.地图坐标[地图]:取随机点()
			local 模型范围 = {
				"帮派妖兽"
			}
			local 模型名称范围 = {
				"貔貅"
			}
			local 名称模型 = 模型名称范围[取随机数(1, #模型名称范围)]
			local 模型 = 模型范围[取随机数(1, #模型范围)]
			任务数据[任务id] = {
				玩家id = 0,
				行走开关 = true,
				结束 = 3600,
				显示饰品 = true,
				类型 = 351,
				id = 任务id,
				起始 = os.time(),
				队伍组 = {},
				名称 = 名称模型,
				模型 = 模型,
				x = xy.x,
				y = xy.y,
				地图编号 = 地图,
				地图名称 = 取地图名称(地图)
			}

			table.insert(x待发送数据[地图], 地图处理类:批量添加单位(任务id))
		end
	end

	for i = 1, #地图范围 do
		local 地图编号 = 地图范围[i]

		for n, v in pairs(地图处理类.地图玩家[地图编号]) do
			if 地图处理类:取同一地图(地图编号, id, n, 1) then
				发送数据(玩家数据[n].连接id, 1021, x待发送数据[地图编号])
			end
		end
	end

	x待发送数据 = {}

	广播消息({
		频道 = "xt",
		内容 = format("#G据说林子里出现里一堆野兽，正在袭扰村民，有胆量的少侠请帮忙前往平乱。")
	})
end

function 任务处理类:完成貔貅的羁绊(任务id, id组)
	if 任务数据[任务id] == nil then
		return
	end

	local 经验 = 30000
	local 银子 = 20000

	for n = 1, #id组 do
		local id = id组[n]

		if 队伍处理类:取是否助战(玩家数据[id].队伍, n) == 0 then
			玩家数据[id].角色:添加经验(经验, "貔貅的羁绊", 1)
			玩家数据[id].角色:添加银子(银子, "貔貅的羁绊", 1)
			召唤兽添加经验(math.floor(经验 * 0.8), id, "貔貅的羁绊")

			奖励次数[id] = 取奖励次数(id)

			for i = 1, 奖励次数[id] do
				local 通知开关 = true
				local 奖励参数 = ygsj()

				if 奖励参数 <= 30 then
					通知开关 = false
					奖励名称[id] = 快捷给道具(id, "超级金柳露", 10)
				elseif 奖励参数 <= 60 then
					礼包奖励类:随机装备(id, 100, "无级别限制")

					奖励名称[id] = "100级无级别装备"

					常规提示(id, "#Y/你获得了" .. 奖励名称[id])
				elseif 奖励参数 <= 80 then
					礼包奖励类:随机装备(id, 110, "无级别限制")

					奖励名称[id] = "110级无级别装备"

					常规提示(id, "#Y/你获得了" .. 奖励名称[id])
				elseif 奖励参数 <= 85 then
					礼包奖励类:随机装备(id, 120, "无级别限制")

					奖励名称[id] = "120级无级别装备"

					常规提示(id, "#Y/你获得了" .. 奖励名称[id])
				elseif 奖励参数 <= 86 then
					礼包奖励类:随机装备(id, 130, "无级别限制")

					奖励名称[id] = "130级无级别装备"

					常规提示(id, "#Y/你获得了" .. 奖励名称[id])
				elseif 奖励参数 <= 88 then
					奖励名称[id] = 快捷给道具(id, "资质丸", 1)
				elseif 奖励参数 <= 93 then
					奖励名称[id] = 快捷给道具(id, "高级藏宝图", 1)
				elseif 奖励参数 <= 98 then
					奖励名称[id] = 快捷给道具(id, "藏宝图", 1)
				else
					通知开关 = false
					奖励名称[id] = 快捷给道具(id, "超级金柳露", 10)
				end

				if 通知开关 == true then
					广播消息({
						频道 = "xt",
						内容 = format("#S(貔貅的羁绊)#R/%s#Y少侠与貔貅切磋武艺，刻苦努力，终于击败貔貅，获得村民奖励#G/%s#Y" .. "#" .. 取随机数(1, 110), 玩家数据[id].角色.数据.名称, 奖励名称[id])
					})
				end
			end
		end
	end

	地图处理类:删除单位(任务数据[任务id].地图编号, 任务数据[任务id].单位编号)

	任务数据[任务id] = nil
end

function 任务处理类:开启水陆副本(id)
	if 玩家数据[id].队伍 == 0 or 玩家数据[id].队长 == false then
		常规提示(id, "#Y/该任务必须组队完成且由队长领取")

		return
	elseif 取队伍人数(id) < 3 then
		常规提示(id, "#Y此副本要求队伍人数不低于3人")

		return
	elseif 取队伍最低等级(玩家数据[id].队伍, 69) then
		常规提示(id, "#Y/等级小于69级的玩家无法领取此任务")

		return
	end

	local 队伍id = 玩家数据[id].队伍

	for n = 1, #队伍数据[队伍id].成员数据 do
		local 临时id = 队伍数据[队伍id].成员数据[n]

		if 副本数据.水陆大会.完成[临时id] ~= nil then
			常规提示(临时id, "#Y" .. 玩家数据[临时id].角色.数据.名称 .. "本日已经完成过此副本了")

			return
		elseif 玩家数据[临时id].角色:取任务(150) ~= 0 then
			常规提示(临时id, "#Y" .. 玩家数据[临时id].角色.数据.名称 .. "正在进行副本任务，无法领取新的副本")

			return
		end
	end

	local 任务id = id .. "_150_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999)
	任务数据[任务id] = {
		装潢 = 0,
		类型 = 150,
		邀请 = 0,
		结束 = 7200,
		id = 任务id,
		起始 = os.time(),
		玩家id = {},
		队伍组 = {},
		副本id = id
	}
	副本数据.水陆大会.进行[id] = {
		进程 = 7,
		副本任务id = 任务id
	}
	local 队伍id = 玩家数据[id].队伍

	self:设置水陆大会副本(id)

	for n = 1, #队伍数据[队伍id].成员数据 do
		if 队伍处理类:取是否助战(玩家数据[id].队伍, n) == 0 then
			local 临时id = 队伍数据[队伍id].成员数据[n]

			玩家数据[临时id].角色:添加任务(任务id)
			常规提示(临时id, "#Y你开启了水陆大会副本")
		end
	end
end

function 任务处理类:设置水陆大会副本(id)
	local 地图 = 0
	local x坐标 = 0
	local y坐标 = 0
	local 方向 = 0

	if 副本数据.水陆大会.进行[id] == nil then
		return
	end

	if 副本数据.水陆大会.进行[id].副本任务id == nil then
		常规提示(id, "#Y副本任务失败！")

		return
	end

	local fbid = 副本数据.水陆大会.进行[id].副本任务id
	local 随机名称 = {}
	local 随机模型 = {}

	if 副本数据.水陆大会.进行[id].毒虫触发 == nil and 副本数据.水陆大会.进行[id].进程 >= 99 then
		local 地图范围 = {
			6024
		}
		local 地图 = 地图范围[取随机数(1, #地图范围)]
		副本数据.水陆大会.进行[id].毒虫触发 = true

		for i = 1, 6 do
			local xy = 地图处理类.地图坐标[地图]:取随机点()
			local 任务id = "_354_" .. os.time() .. "_" .. 取随机数(88, 99999999)
			local 造型 = "海毛虫"
			任务数据[任务id] = {
				名称 = "毒虫",
				变异 = true,
				结束 = 600,
				事件 = "明雷",
				类型 = 354,
				id = 任务id,
				起始 = os.time(),
				玩家id = id,
				队伍组 = {},
				模型 = 造型,
				副本id = id,
				x = xy.x,
				y = xy.y,
				地图编号 = 地图,
				地图名称 = 取地图名称(地图)
			}

			地图处理类:添加单位(任务id)
		end

		广播队伍消息(id, "#Y/水陆道场刷出了一群毒虫，少侠赶快去消灭他们！")
	end

	if 副本数据.水陆大会.进行[id].进程 == 1 then
		副本数据.水陆大会.进行[id].邀请 = 0
		副本数据.水陆大会.进行[id].装潢 = 0
		地图 = 6024
		local 任务id = "_151_" .. os.time() .. "_" .. 取随机数(88, 99999999)
		任务数据[任务id] = {
			名称 = "蟠桃树",
			y = 12,
			x = 110,
			结束 = 999999,
			类型 = 151,
			模型 = "桃树",
			id = 任务id,
			起始 = os.time(),
			玩家id = id,
			队伍组 = {},
			副本id = id,
			地图编号 = 地图,
			地图名称 = 取地图名称(地图)
		}

		地图处理类:添加单位(任务id)
	elseif 副本数据.水陆大会.进行[id].进程 == 2 then
		随机名称 = {
			"玄奘法师",
			"唐太宗",
			"小沙弥",
			"魏征",
			"殷丞相",
			"杜如晦",
			"尉迟敬德",
			"程咬金",
			"秦琼"
		}
		随机模型 = {
			"唐僧",
			"皇帝",
			"男人_胖和尚",
			"考官2",
			"考官2",
			"考官2",
			"秦琼",
			"程咬金",
			"秦琼"
		}

		for i = 1, #随机模型 do
			任务id = id .. "_152_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999) .. i
			地图 = 6024
			local 造型 = 随机模型[i]

			if 随机名称[i] == "玄奘法师" then
				x坐标 = 56
				y坐标 = 57
				方向 = 1
			elseif 随机名称[i] == "唐太宗" then
				x坐标 = 48
				y坐标 = 64
				方向 = 3
			elseif 随机名称[i] == "小沙弥" then
				x坐标 = 58
				y坐标 = 65
				方向 = 1
			elseif 随机名称[i] == "魏征" then
				x坐标 = 43
				y坐标 = 64
				方向 = 0
			elseif 随机名称[i] == "殷丞相" then
				x坐标 = 40
				y坐标 = 66
				方向 = 0
			elseif 随机名称[i] == "杜如晦" then
				x坐标 = 39
				y坐标 = 68
				方向 = 0
			elseif 随机名称[i] == "尉迟敬德" then
				x坐标 = 53
				y坐标 = 68
				方向 = 2
			elseif 随机名称[i] == "程咬金" then
				x坐标 = 50
				y坐标 = 70
				方向 = 2
			elseif 随机名称[i] == "秦琼" then
				x坐标 = 46
				y坐标 = 71
				方向 = 2
			end

			任务数据[任务id] = {
				结束 = 999999,
				类型 = 152,
				id = 任务id,
				起始 = os.time(),
				玩家id = id,
				队伍组 = {},
				名称 = 随机名称[i],
				模型 = 造型,
				x = x坐标,
				y = y坐标,
				方向 = 方向,
				副本id = id,
				地图编号 = 地图,
				地图名称 = 取地图名称(地图)
			}

			地图处理类:添加单位(任务id)
		end
	elseif 副本数据.水陆大会.进行[id].进程 == 3 then
		地图 = 6024
		任务id = id .. "_153_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999)
		任务数据[任务id] = {
			名称 = "受伤的程咬金",
			y = 66,
			方向 = 1,
			x = 52,
			结束 = 999999,
			类型 = 153,
			模型 = "程咬金",
			id = 任务id,
			起始 = os.time(),
			玩家id = id,
			队伍组 = {},
			副本id = id,
			地图编号 = 地图,
			地图名称 = 取地图名称(地图)
		}

		地图处理类:添加单位(任务id)
	elseif 副本数据.水陆大会.进行[id].进程 == 4 then
		地图 = 6024
		随机名称 = {
			"翼虎将军",
			"蝰蛇将军"
		}
		随机模型 = {
			"噬天虎",
			"律法女娲"
		}
		副本数据.水陆大会.进行[id].翼虎 = false
		副本数据.水陆大会.进行[id].翼虎击败 = false
		副本数据.水陆大会.进行[id].蝰蛇 = false
		副本数据.水陆大会.进行[id].蝰蛇击败 = false

		for i = 1, #随机模型 do
			if 随机名称[i] == "翼虎将军" then
				x坐标 = 113
				y坐标 = 12
				方向 = 1
			else
				x坐标 = 122
				y坐标 = 17
				方向 = 1
			end

			任务id = id .. "_154_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999) .. i
			任务数据[任务id] = {
				结束 = 999999,
				类型 = 154,
				id = 任务id,
				起始 = os.time(),
				玩家id = id,
				队伍组 = {},
				名称 = 随机名称[i],
				模型 = 随机模型[i],
				x = x坐标,
				y = y坐标,
				方向 = 方向,
				副本id = id,
				地图编号 = 地图,
				地图名称 = 取地图名称(地图)
			}

			地图处理类:添加单位(任务id)
		end
	elseif 副本数据.水陆大会.进行[id].进程 == 5 then
		local 任务id = id .. "_" .. 取随机数(88, 1111) .. "_155_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999)
		任务数据[任务id] = {
			类型 = 155,
			结束 = 600,
			领取人id = {
				id
			},
			id = 任务id,
			起始 = os.time(),
			玩家id = id,
			队伍组 = {}
		}
		local 水陆大会邀请人 = {
			{
				名称 = "代笔师爷",
				x = 483,
				y = 125
			},
			{
				名称 = "瓜农",
				x = 478,
				y = 119
			},
			{
				名称 = "绣娘",
				x = 459,
				y = 162
			},
			{
				名称 = "喜轿轿夫",
				x = 483,
				y = 147
			},
			{
				名称 = "卖艺者",
				x = 430,
				y = 182
			},
			{
				名称 = "乞丐乙",
				x = 455,
				y = 184
			},
			{
				名称 = "阿咪",
				x = 470,
				y = 192
			},
			{
				名称 = "马商",
				x = 407,
				y = 211
			},
			{
				名称 = "小顽童",
				x = 401,
				y = 203
			},
			{
				名称 = "卖花童",
				x = 420,
				y = 219
			},
			{
				名称 = "丫鬟",
				x = 424,
				y = 222
			},
			{
				名称 = "富家小姐",
				x = 431,
				y = 225
			},
			{
				名称 = "卖鱼人",
				x = 442,
				y = 229
			},
			{
				名称 = "面点师傅",
				x = 443,
				y = 223
			},
			{
				名称 = "针线娘子",
				x = 464,
				y = 240
			},
			{
				名称 = "樵夫",
				x = 462,
				y = 262
			},
			{
				名称 = "大财主",
				x = 427,
				y = 228
			},
			{
				名称 = "曾衙役",
				x = 421,
				y = 225
			},
			{
				名称 = "布陈太医",
				x = 370,
				y = 243
			},
			{
				名称 = "游方郎中",
				x = 389,
				y = 234
			}
		}
		local 序列 = 取随机数(1, #水陆大会邀请人)
		local 邀请人1 = 水陆大会邀请人[序列].名称

		table.remove(水陆大会邀请人, 序列)

		local 邀请人2 = 水陆大会邀请人[取随机数(1, #水陆大会邀请人)].名称
		任务数据[任务id].地图编号 = 6025
		副本数据.水陆大会.进行[id].人物 = {
			{
				找到 = false,
				名称 = 邀请人1
			},
			{
				找到 = false,
				名称 = 邀请人2
			}
		}
	elseif 副本数据.水陆大会.进行[id].进程 == 6 then
		地图 = 6024
		任务id = id .. "_156_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999)
		任务数据[任务id] = {
			名称 = "土地公公",
			y = 11,
			方向 = 1,
			x = 116,
			结束 = 999999,
			类型 = 156,
			模型 = "男人_土地",
			id = 任务id,
			起始 = os.time(),
			玩家id = id,
			队伍组 = {},
			副本id = id,
			地图编号 = 地图,
			地图名称 = 取地图名称(地图)
		}

		地图处理类:添加单位(任务id)
	elseif 副本数据.水陆大会.进行[id].进程 == 7 then
		副本数据.水陆大会.进行[id].击败小妖 = 0
		副本数据.水陆大会.进行[id].击败头领 = 0
		副本数据.水陆大会.进行[id].击败将军 = 0
		随机名称 = {}
		随机模型 = {}

		for i = 1, 副本减负.水陆大会[3] do
			随机名称[#随机名称 + 1] = "巡山小妖"
			随机模型[#随机模型 + 1] = "鼠先锋"
		end

		for i = 1, 副本减负.水陆大会[4] do
			随机名称[#随机名称 + 1] = "上古妖兽头领"
			随机模型[#随机模型 + 1] = "地狱战神"
		end

		for i = 1, 副本减负.水陆大会[5] - 1 do
			随机名称[#随机名称 + 1] = "妖将军"
			随机模型[#随机模型 + 1] = "野猪精"
		end

		for i = 1, #随机模型 do
			任务id = id .. "_157_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999) .. i
			地图 = 6026
			local 造型 = 随机模型[i]

			if 随机名称[i] == "巡山小妖" then
				x坐标 = 取随机数(23, 46)
				y坐标 = 取随机数(80, 87)
			elseif 随机名称[i] == "上古妖兽头领" then
				x坐标 = 取随机数(50, 55)
				y坐标 = 取随机数(50, 55)
			elseif 随机名称[i] == "妖将军" then
				x坐标 = 取随机数(11, 16)
				y坐标 = 取随机数(13, 17)
			end

			任务数据[任务id] = {
				结束 = 999999,
				事件 = "明雷",
				类型 = 157,
				id = 任务id,
				起始 = os.time(),
				玩家id = id,
				队伍组 = {},
				名称 = 随机名称[i],
				模型 = 造型,
				x = x坐标,
				y = y坐标,
				方向 = 方向,
				副本id = id,
				地图编号 = 地图,
				地图名称 = 取地图名称(地图)
			}

			地图处理类:添加单位(任务id)
		end

		随机序列 = 随机序列 + 1
		随机名称 = {
			"妖将军"
		}
		随机模型 = {
			"野猪精"
		}

		for i = 1, #随机模型 do
			任务id = id .. "_157_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999) .. i
			地图 = 6026
			local 造型 = 随机模型[i]

			if 随机名称[i] == "上古妖兽头领" then
				x坐标 = 16
				y坐标 = 67
			elseif 随机名称[i] == "妖将军" then
				x坐标 = 26
				y坐标 = 12
			end

			任务数据[任务id] = {
				结束 = 999999,
				事件 = "明雷",
				类型 = 157,
				id = 任务id,
				起始 = os.time(),
				玩家id = id,
				队伍组 = {},
				名称 = 随机名称[i],
				模型 = 造型,
				x = x坐标,
				y = y坐标,
				方向 = 方向,
				副本id = id,
				地图编号 = 地图,
				地图名称 = 取地图名称(地图)
			}

			地图处理类:添加单位(任务id)
		end

		随机序列 = 随机序列 + 1
		随机名称 = {
			"魑魅",
			"魍魉"
		}
		随机模型 = {
			"帮派妖兽",
			"帮派妖兽"
		}

		for i = 1, #随机模型 do
			任务id = id .. "_157_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999) .. i
			地图 = 6026
			local 造型 = 随机模型[i]

			if 随机名称[i] == "魑魅" then
				x坐标 = 40
				y坐标 = 16
				方向 = 1
			elseif 随机名称[i] == "魍魉" then
				x坐标 = 47
				y坐标 = 20
				方向 = 1
			end

			任务数据[任务id] = {
				结束 = 999999,
				类型 = 157,
				id = 任务id,
				起始 = os.time(),
				玩家id = id,
				队伍组 = {},
				名称 = 随机名称[i],
				模型 = 造型,
				x = x坐标,
				y = y坐标,
				方向 = 方向,
				副本id = id,
				地图编号 = 地图,
				地图名称 = 取地图名称(地图)
			}

			地图处理类:添加单位(任务id)
		end
	elseif 副本数据.水陆大会.进行[id].进程 == 8 then
		随机名称 = {
			"唐太宗",
			"玄奘法师"
		}
		随机模型 = {
			"皇帝",
			"唐僧"
		}

		for i = 1, #随机模型 do
			任务id = id .. "_158_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999) .. i
			地图 = 6026
			local 造型 = 随机模型[i]

			if 随机名称[i] == "唐太宗" then
				x坐标 = 40
				y坐标 = 20
				方向 = 0
			elseif 随机名称[i] == "玄奘法师" then
				x坐标 = 47
				y坐标 = 20
				方向 = 1
			end

			任务数据[任务id] = {
				结束 = 999999,
				类型 = 158,
				id = 任务id,
				起始 = os.time(),
				玩家id = id,
				队伍组 = {},
				名称 = 随机名称[i],
				模型 = 造型,
				x = x坐标,
				y = y坐标,
				方向 = 方向,
				副本id = id,
				地图编号 = 地图,
				地图名称 = 取地图名称(地图)
			}

			地图处理类:添加单位(任务id)
		end

		发送数据(玩家数据[id].连接id, 3532)
	end
end

function 任务处理类:驱逐泼猴(id)
	if 玩家数据[id].角色:取任务(352) ~= 0 then
		添加最后对话(id, "少侠身上已经任务，请先完成任务再来！")

		return
	elseif 玩家数据[id].队伍 ~= 0 then
		添加最后对话(id, "组队状态下无法接任务！")

		return
	end

	local 地图范围 = {
		6024
	}
	local 地图 = 地图范围[取随机数(1, #地图范围)]
	local xy = 地图处理类.地图坐标[地图]:取随机点()
	xy.x = 取随机数(87, 125)
	xy.y = 取随机数(3, 40)
	local 任务id = "_352_" .. os.time() .. "_" .. 取随机数(88, 99999999)
	local 造型 = "长眉灵猴"
	任务数据[任务id] = {
		行走开关 = true,
		结束 = 600,
		类型 = 352,
		名称 = "妄空泼猴",
		称谓 = "妄空是猪",
		id = 任务id,
		起始 = os.time(),
		玩家id = id,
		队伍组 = {},
		模型 = 造型,
		x = xy.x,
		y = xy.y,
		地图编号 = 地图,
		地图名称 = 取地图名称(地图),
		副本id = 任务数据[玩家数据[id].角色:取任务(150)].副本id
	}

	玩家数据[id].角色:添加任务(任务id)
	地图处理类:添加单位(任务id)
end

function 任务处理类:添加水陆邀请任务(id)
	if 玩家数据[id].角色:取任务(353) ~= 0 then
		添加最后对话(id, "少侠身上已经任务，请先完成任务再来！")

		return
	elseif 玩家数据[id].队伍 ~= 0 then
		添加最后对话(id, "组队状态下无法接任务！")

		return
	end

	local 任务id = id .. "_" .. 取随机数(88, 1111) .. "_353_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999)
	任务数据[任务id] = {
		类型 = 353,
		结束 = 600,
		领取人id = {
			id
		},
		id = 任务id,
		起始 = os.time(),
		玩家id = id,
		队伍组 = {}
	}
	local 序列 = 取随机数(1, #Q_水陆大会邀请)
	任务数据[任务id].人物 = Q_水陆大会邀请[序列].名称
	任务数据[任务id].x = Q_水陆大会邀请[序列].x
	任务数据[任务id].y = Q_水陆大会邀请[序列].y
	任务数据[任务id].地图编号 = 6025

	添加最后对话(id, format("穿过道场前门，到繁华京城给#R%s(%s，%s)#W送上邀帖。", 任务数据[任务id].人物, 任务数据[任务id].x, 任务数据[任务id].y))
	玩家数据[id].角色:添加任务(任务id)
end

function 任务处理类:开启通天河副本(id)
	if 玩家数据[id].队伍 == 0 or 玩家数据[id].队长 == false then
		常规提示(id, "#Y/该任务必须组队完成且由队长领取")

		return
	elseif 取队伍人数(id) < 3 then
		常规提示(id, "#Y此副本要求队伍人数不低于3人")

		return
	elseif 取队伍最低等级(玩家数据[id].队伍, 69) then
		常规提示(id, "#Y/等级小于69级的玩家无法领取此任务")

		return
	end

	local 队伍id = 玩家数据[id].队伍

	for n = 1, #队伍数据[队伍id].成员数据 do
		local 临时id = 队伍数据[队伍id].成员数据[n]

		if 副本数据.通天河.完成[临时id] ~= nil then
			常规提示(临时id, "#Y" .. 玩家数据[临时id].角色.数据.名称 .. "本日已经完成过此副本了")

			return
		elseif 玩家数据[临时id].角色:取任务(160) ~= 0 then
			常规提示(临时id, "#Y" .. 玩家数据[临时id].角色.数据.名称 .. "正在进行副本任务，无法领取新的副本")

			return
		end
	end

	local 任务id = id .. "_160_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999)
	任务数据[任务id] = {
		类型 = 160,
		结束 = 7200,
		id = 任务id,
		起始 = os.time(),
		玩家id = {},
		队伍组 = {},
		副本id = id
	}
	副本数据.通天河.进行[id] = {
		进程 = 1,
		副本任务id = 任务id,
		通天答题 = 0,
		通天取消 = false
	}
	local 队伍id = 玩家数据[id].队伍

	self:设置通天河副本(id)

	for n = 1, #队伍数据[队伍id].成员数据 do
		if 队伍处理类:取是否助战(玩家数据[id].队伍, n) == 0 then
			local 临时id = 队伍数据[队伍id].成员数据[n]

			玩家数据[临时id].角色:添加任务(任务id)
			常规提示(临时id, "#Y你开启了通天河副本")
		end
	end
end

function 任务处理类:设置通天河副本(id)
	local 地图 = 0
	local x坐标 = 0
	local y坐标 = 0
	local 方向 = 0

	if 副本数据.通天河.进行[id] == nil then
		return
	end

	if 副本数据.通天河.进行[id].副本任务id == nil then
		常规提示(id, "#Y副本任务失败！")

		return
	end

	local fbid = 副本数据.通天河.进行[id].副本任务id
	local 随机名称 = {}
	local 随机模型 = {}

	if 副本数据.通天河.进行[id].进程 == 1 then
		随机名称 = {
			"丫丫",
			"毛头",
			"明明",
			"豆包",
			"嘟嘟"
		}
		随机模型 = {
			"小丫丫",
			"小毛头"
		}

		for i = 1, #随机名称 do
			地图 = 6027
			local xy = 地图处理类.地图坐标[地图]:取随机点()
			local 任务id = "_161_" .. os.time() .. "_" .. 取随机数(88, 99999999)
			任务数据[任务id] = {
				y = 174,
				x = 118,
				行走开关 = true,
				结束 = 999999,
				类型 = 161,
				id = 任务id,
				起始 = os.time(),
				玩家id = id,
				队伍组 = {},
				名称 = 随机名称[取随机数(1, #随机名称)],
				模型 = 随机模型[取随机数(1, #随机模型)],
				副本id = id,
				地图编号 = 地图,
				地图名称 = 取地图名称(地图)
			}

			地图处理类:添加单位(任务id)
		end
	elseif 副本数据.通天河.进行[id].进程 == 2 then
		随机名称 = {
			"一秤金",
			"陈关保"
		}
		随机模型 = {
			"小丫丫",
			"小毛头"
		}
		副本数据.通天河.进行[id].变身次数 = 0

		for i = 1, #随机模型 do
			任务id = id .. "_162_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999) .. i
			地图 = 6027
			local xy = 地图处理类.地图坐标[地图]:取随机点()
			local 造型 = 随机模型[i]
			任务数据[任务id] = {
				y = 174,
				x = 118,
				结束 = 999999,
				行走开关 = true,
				类型 = 162,
				id = 任务id,
				起始 = os.time(),
				玩家id = id,
				队伍组 = {},
				名称 = 随机名称[i],
				模型 = 造型,
				方向 = 方向,
				副本id = id,
				地图编号 = 地图,
				地图名称 = 取地图名称(地图)
			}

			地图处理类:添加单位(任务id)
		end
	elseif 副本数据.通天河.进行[id].进程 == 3 then
		地图 = 6027
		任务id = id .. "_163_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999)
		任务数据[任务id] = {
			名称 = "灵灯",
			y = 176,
			方向 = 1,
			x = 23,
			结束 = 999999,
			类型 = 163,
			模型 = "海星",
			id = 任务id,
			起始 = os.time(),
			玩家id = id,
			队伍组 = {},
			副本id = id,
			地图编号 = 地图,
			地图名称 = 取地图名称(地图)
		}

		地图处理类:添加单位(任务id)
	elseif 副本数据.通天河.进行[id].进程 == 4 then
		地图 = 6027
		local xy = 地图处理类.地图坐标[地图]:取随机点()
		随机名称 = {
			"唐僧"
		}
		随机模型 = {
			"唐僧"
		}

		for i = 1, #随机模型 do
			任务id = id .. "_164_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999) .. i
			任务数据[任务id] = {
				y = 174,
				x = 118,
				结束 = 999999,
				类型 = 164,
				id = 任务id,
				起始 = os.time(),
				玩家id = id,
				队伍组 = {},
				名称 = 随机名称[i],
				模型 = 随机模型[i],
				方向 = 方向,
				副本id = id,
				地图编号 = 地图,
				地图名称 = 取地图名称(地图)
			}

			地图处理类:添加单位(任务id)
		end
	elseif 副本数据.通天河.进行[id].进程 == 5 then
		地图 = 6027
		副本数据.通天河.进行[id].河妖 = 0
		随机名称 = {
			"河妖"
		}
		随机模型 = {
			"虾兵",
			"蟹将",
			"蚌精",
			"鲛人",
			"碧水夜叉"
		}

		for i = 1, 副本减负.通天河[1] do
			local xy = 地图处理类.地图坐标[地图]:取随机点()
			任务id = id .. "_165_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999) .. i
			任务数据[任务id] = {
				y = 174,
				x = 118,
				结束 = 999999,
				行走开关 = true,
				类型 = 165,
				id = 任务id,
				起始 = os.time(),
				玩家id = id,
				队伍组 = {},
				名称 = 随机名称[取随机数(1, #随机名称)],
				模型 = 随机模型[取随机数(1, #随机模型)],
				方向 = 方向,
				副本id = id,
				地图编号 = 地图,
				地图名称 = 取地图名称(地图)
			}

			地图处理类:添加单位(任务id)
		end
	elseif 副本数据.通天河.进行[id].进程 == 6 then
		地图 = 6028
		local xy = 地图处理类.地图坐标[地图]:取随机点()
		随机名称 = {
			"散财童子",
			"黑熊精"
		}
		随机模型 = {
			"小魔头",
			"黑熊精"
		}

		for i = 1, #随机模型 do
			local xy = 地图处理类.地图坐标[地图]:取随机点()

			if 随机名称[i] == "散财童子" then
				xy.x = 17
				xy.y = 21
			else
				xy.x = 22
				xy.y = 17
			end

			任务id = id .. "_166_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999) .. i
			任务数据[任务id] = {
				结束 = 999999,
				类型 = 166,
				id = 任务id,
				起始 = os.time(),
				玩家id = id,
				队伍组 = {},
				名称 = 随机名称[i],
				模型 = 随机模型[i],
				x = xy.x,
				y = xy.y,
				方向 = 方向,
				副本id = id,
				地图编号 = 地图,
				地图名称 = 取地图名称(地图)
			}

			地图处理类:添加单位(任务id)
		end
	elseif 副本数据.通天河.进行[id].进程 == 7 then
		地图 = 6028
		local xy = 地图处理类.地图坐标[地图]:取随机点()
		随机名称 = {
			"观音姐姐"
		}
		随机模型 = {
			"观音姐姐"
		}

		for i = 1, #随机模型 do
			local xy = 地图处理类.地图坐标[地图]:取随机点()
			任务id = id .. "_167_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999) .. i
			任务数据[任务id] = {
				y = 9,
				x = 9,
				结束 = 999999,
				类型 = 167,
				id = 任务id,
				起始 = os.time(),
				玩家id = id,
				队伍组 = {},
				名称 = 随机名称[i],
				模型 = 随机模型[i],
				方向 = 方向,
				副本id = id,
				地图编号 = 地图,
				地图名称 = 取地图名称(地图)
			}

			地图处理类:添加单位(任务id)
		end
	elseif 副本数据.通天河.进行[id].进程 == 8 then
		地图 = 6028
		local xy = 地图处理类.地图坐标[地图]:取随机点()
		副本数据.通天河.进行[id].五色竹条 = 0
		随机名称 = {
			"五色竹条"
		}
		随机模型 = {
			"树怪"
		}

		for i = 1, 副本减负.通天河[2] do
			local xy = 地图处理类.地图坐标[地图]:取随机点()
			任务id = id .. "_168_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999) .. i
			任务数据[任务id] = {
				名称 = "五色竹条",
				结束 = 999999,
				类型 = 168,
				模型 = "树怪",
				id = 任务id,
				起始 = os.time(),
				玩家id = id,
				队伍组 = {},
				x = xy.x,
				y = xy.y,
				方向 = 方向,
				副本id = id,
				地图编号 = 地图,
				地图名称 = 取地图名称(地图)
			}

			地图处理类:添加单位(任务id)
		end
	elseif 副本数据.通天河.进行[id].进程 == 9 then
		地图 = 6029
		local xy = 地图处理类.地图坐标[地图]:取随机点()
		随机名称 = {
			"金鱼将军"
		}
		随机模型 = {
			"碧水夜叉"
		}

		for i = 1, #随机模型 do
			local xy = 地图处理类.地图坐标[地图]:取随机点()
			任务id = id .. "_169_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999) .. i
			任务数据[任务id] = {
				y = 54,
				x = 111,
				结束 = 999999,
				类型 = 169,
				id = 任务id,
				起始 = os.time(),
				玩家id = id,
				队伍组 = {},
				名称 = 随机名称[i],
				模型 = 随机模型[i],
				方向 = 方向,
				副本id = id,
				地图编号 = 地图,
				地图名称 = 取地图名称(地图)
			}

			地图处理类:添加单位(任务id)
		end
	elseif 副本数据.通天河.进行[id].进程 == 10 then
		地图 = 6030
		local xy = 地图处理类.地图坐标[地图]:取随机点()
		随机名称 = {
			"灵感大王"
		}
		随机模型 = {
			"神天兵"
		}

		for i = 1, #随机模型 do
			local xy = 地图处理类.地图坐标[地图]:取随机点()
			任务id = id .. "_170_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999) .. i
			任务数据[任务id] = {
				y = 55,
				武器 = "雷神",
				角色 = true,
				结束 = 999999,
				类型 = 170,
				武器等级 = 100,
				x = 103,
				id = 任务id,
				起始 = os.time(),
				玩家id = id,
				队伍组 = {},
				名称 = 随机名称[i],
				模型 = 随机模型[i],
				方向 = 方向,
				副本id = id,
				地图编号 = 地图,
				地图名称 = 取地图名称(地图)
			}

			地图处理类:添加单位(任务id)
		end
	end
end

取消齐天大圣副本单位 = function(任务id)
	local 副本id = 任务数据[任务id].副本id
	local 删除地图 = {
		6036,
		6037,
		6038
	}

	for n = 1, #删除地图 do
		local aa = 删除地图[n]

		for i, v in pairs(地图处理类.地图单位[aa]) do
			if 任务数据[地图处理类.地图单位[aa][i].id].副本id == 副本id then
				地图处理类:删除单位(aa, i)
			end
		end
	end
end

function 任务处理类:开启齐天大圣副本(id)
	if 玩家数据[id].队伍 == 0 or 玩家数据[id].队长 == false then
		常规提示(id, "#Y/该任务必须组队完成且由队长领取")

		return
	elseif 取队伍人数(id) < 1 then
		常规提示(id, "#Y此副本要求队伍人数不低于5人")

		return
	elseif 取等级要求(id, 69) == false then
		常规提示(id, "#Y此副本要求角色等级不能低于69级")

		return
	end

	local 队伍id = 玩家数据[id].队伍

	for n = 1, #队伍数据[队伍id].成员数据 do
		local 临时id = 队伍数据[队伍id].成员数据[n]

		if 副本数据.齐天大圣.完成[临时id] ~= nil then
			常规提示(临时id, "#Y" .. 玩家数据[临时id].角色.数据.名称 .. "本日已经完成过此副本了")

			return
		elseif 玩家数据[临时id].角色:取任务(191) ~= 0 then
			常规提示(临时id, "#Y" .. 玩家数据[临时id].角色.数据.名称 .. "正在进行副本任务，无法领取新的副本")

			return
		end
	end

	local 任务id = id .. "_191_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(1, 999)
	任务数据[任务id] = {
		类型 = 191,
		结束 = 7200,
		id = 任务id,
		起始 = os.time(),
		玩家id = {},
		队伍组 = {},
		副本id = id
	}
	副本数据.齐天大圣.进行[id] = {
		进程 = 1,
		副本任务id = 任务id
	}
	local 队伍id = 玩家数据[id].队伍

	for n = 1, #队伍数据[队伍id].成员数据 do
		if 队伍处理类:取是否助战(玩家数据[id].队伍, n) == 0 then
			任务数据[任务id].队伍组[#任务数据[任务id].队伍组 + 1] = 队伍数据[队伍id].成员数据[n]
		end
	end

	self:设置齐天大圣副本(id)

	for n = 1, #队伍数据[队伍id].成员数据 do
		if 队伍处理类:取是否助战(玩家数据[id].队伍, n) == 0 then
			local 临时id = 队伍数据[队伍id].成员数据[n]

			玩家数据[临时id].角色:添加任务(任务id)
			常规提示(临时id, "#Y你开启了齐天大圣副本")
		end
	end
end

function 任务处理类:设置齐天大圣副本(id)
	local 地图 = 0
	local x坐标 = 0
	local y坐标 = 0
	local 方向 = 0

	if 副本数据.齐天大圣.进行[id] == nil then
		return
	end

	if 副本数据.齐天大圣.进行[id].副本任务id == nil then
		常规提示(id, "#Y副本任务失败！")

		return
	end

	local fbid = 副本数据.齐天大圣.进行[id].副本任务id
	local 随机名称 = {}
	local 随机模型 = {}

	if 副本数据.齐天大圣.进行[id].进程 == 1 then
		随机名称 = {
			"伤心的小猴",
			"临死的老猴"
		}
		随机模型 = {
			"超级金猴",
			"长眉灵猴"
		}
		副本数据.齐天大圣.进行[id].小猴老猴 = {
			伤心的小猴 = 副本减负.齐天大圣[1],
			临死的老猴 = 副本减负.齐天大圣[1]
		}

		for i = 1, 2 do
			for n = 1, 副本减负.齐天大圣[1] do
				地图 = 6036
				local xy = 地图处理类.地图坐标[地图]:取随机点()
				local 任务id = "_192_" .. os.time() .. "_" .. 取随机数(1, 999) .. n .. i
				任务数据[任务id] = {
					结束 = 7200,
					类型 = 192,
					id = 任务id,
					起始 = os.time(),
					玩家id = id,
					队伍组 = {},
					名称 = 随机名称[i],
					模型 = 随机模型[i],
					x = xy.x,
					y = xy.y,
					副本id = id,
					地图编号 = 地图,
					地图名称 = 取地图名称(地图)
				}

				地图处理类:添加单位(任务id)
			end
		end
	elseif 副本数据.齐天大圣.进行[id].进程 == 2 then
		地图 = 6036
		随机名称 = {
			"黑无常",
			"白无常"
		}
		随机模型 = {
			"黑无常",
			"白无常"
		}
		local 坐标 = {
			{
				113,
				106
			},
			{
				106,
				107
			}
		}
		副本数据.齐天大圣.进行[id].黑白无常 = {
			黑无常 = 1,
			白无常 = 1
		}

		for i = 1, 2 do
			任务id = id .. "_193_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(1, 99) .. i
			local xy = 地图处理类.地图坐标[地图]:取随机点()
			任务数据[任务id] = {
				变异 = true,
				结束 = 7200,
				类型 = 193,
				id = 任务id,
				起始 = os.time(),
				玩家id = id,
				队伍组 = {},
				名称 = 随机名称[i],
				模型 = 随机模型[i],
				x = 坐标[i][1],
				y = 坐标[i][2],
				方向 = 方向,
				副本id = id,
				地图编号 = 地图,
				地图名称 = 取地图名称(地图)
			}

			地图处理类:添加单位(任务id)
		end
	elseif 副本数据.齐天大圣.进行[id].进程 == 5 then
		任务id = id .. "_194_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(1, 99)
		地图 = 6036
		local xy = 地图处理类.地图坐标[地图]:取随机点()
		任务数据[任务id] = {
			名称 = "太白金星",
			y = 106,
			x = 114,
			结束 = 7200,
			类型 = 194,
			模型 = "太白金星",
			id = 任务id,
			起始 = os.time(),
			玩家id = id,
			队伍组 = {},
			方向 = 方向,
			副本id = id,
			地图编号 = 地图,
			地图名称 = 取地图名称(地图)
		}

		地图处理类:添加单位(任务id)
	elseif 副本数据.齐天大圣.进行[id].进程 == 8 then
		地图 = 6038
		随机名称 = {
			"盗马贼"
		}
		随机模型 = {
			"强盗"
		}
		副本数据.齐天大圣.进行[id].盗马贼 = 副本减负.齐天大圣[2]

		for i = 1, 副本减负.齐天大圣[2] do
			local xy = 地图处理类.地图坐标[地图]:取随机点()
			任务id = id .. "_195_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999) .. i
			任务数据[任务id] = {
				名称 = "盗马贼",
				结束 = 7200,
				类型 = 195,
				模型 = "强盗",
				id = 任务id,
				起始 = os.time(),
				玩家id = id,
				队伍组 = {},
				x = xy.x,
				y = xy.y,
				方向 = 方向,
				副本id = id,
				地图编号 = 地图,
				地图名称 = 取地图名称(地图)
			}

			地图处理类:添加单位(任务id)
		end
	elseif 副本数据.齐天大圣.进行[id].进程 == 9 then
		副本数据.齐天大圣.进行[id].盗马贼 = nil
		任务id = id .. "_196_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(1, 99)
		地图 = 6038
		local xy = 地图处理类.地图坐标[地图]:取随机点()
		任务数据[任务id] = {
			名称 = "调皮的小马",
			结束 = 7200,
			类型 = 196,
			模型 = "超级神马",
			id = 任务id,
			起始 = os.time(),
			玩家id = id,
			队伍组 = {},
			x = xy.x,
			y = xy.y,
			方向 = 方向,
			副本id = id,
			地图编号 = 地图,
			地图名称 = 取地图名称(地图)
		}

		地图处理类:添加单位(任务id)
	elseif 副本数据.齐天大圣.进行[id].进程 == 11 then
		地图 = 6036
		local xy = 地图处理类.地图坐标[地图]:取随机点()
		随机名称 = {
			"百万天兵",
			"巨灵神",
			"李靖"
		}
		随机模型 = {
			"天兵",
			"大力金刚",
			"李靖"
		}
		副本数据.齐天大圣.进行[id].百万天兵 = {
			百万天兵 = false,
			巨灵神 = false
		}

		for i = 1, #随机模型 do
			local xy = 地图处理类.地图坐标[地图]:取随机点()
			任务id = id .. "_197_" .. os.time() .. "_" .. 随机序列 .. "_" .. 取随机数(88, 99999999) .. i
			任务数据[任务id] = {
				结束 = 7200,
				类型 = 197,
				id = 任务id,
				起始 = os.time(),
				玩家id = id,
				队伍组 = {},
				名称 = 随机名称[i],
				模型 = 随机模型[i],
				x = xy.x,
				y = xy.y,
				方向 = 方向,
				副本id = id,
				地图编号 = 地图,
				地图名称 = 取地图名称(地图)
			}

			地图处理类:添加单位(任务id)
		end
	end
end

function 任务处理类:开启大闹天宫副本(id)
	开启大闹天宫副本(id)
end

function 任务处理类:设置大闹天宫副本(id)
	设置大闹天宫副本(id)
end

function 任务处理类:大闹锄树(id)
	大闹天宫:大闹锄树(id)
end

function 任务处理类:大闹浇水(id)
	大闹天宫:大闹浇水(id)
end

function 任务处理类:大闹修桃(id)
	大闹天宫:大闹修桃(id)
end

function 任务处理类:完成齐天黑白无常(任务id, id组)
	if 任务数据[任务id] == nil then
		return
	end

	local 经验 = 0
	local 银子 = 0

	for n = 1, #id组 do
		local id = id组[n]

		if 队伍处理类:取是否助战(玩家数据[id].队伍, n) == 0 then
			local 平均等级 = 取队伍平均等级(玩家数据[id].队伍, id)
			经验 = 平均等级 * 平均等级 * 10
			银子 = 平均等级 * 200

			玩家数据[id].角色:添加经验(经验, "齐天大圣", 1)
			玩家数据[id].角色:添加银子(银子, "齐天大圣", 1)
			召唤兽添加经验(math.floor(经验 * 0.8), id, "齐天大圣")

			奖励次数[id] = 取奖励次数(id)

			for i = 1, 奖励次数[id] do
				local 通知开关 = true
				local 奖励参数 = ygsj()

				if 奖励参数 <= 10 then
					奖励名称[id] = 快捷给道具(id, "九转金丹", 1)
				elseif 奖励参数 <= 20 then
					奖励名称[id] = 快捷给道具(id, "修炼果", 5)
				elseif 奖励参数 <= 40 then
					奖励名称[id] = 快捷给道具(id, "魔兽要诀", 1)
				elseif 奖励参数 <= 50 then
					奖励名称[id] = 快捷给道具(id, "魔兽残卷", 1)
				elseif 奖励参数 <= 60 then
					奖励名称[id] = 快捷给道具(id, "星辉石", 6)
				elseif 奖励参数 <= 75 then
					奖励名称[id] = 快捷给道具(id, "坐骑内丹", 1)
				elseif 奖励参数 <= 90 then
					奖励名称[id] = 快捷给道具(id, "高级魔兽要诀", 1)
				elseif 奖励参数 <= 97 then
					奖励名称[id] = 快捷给道具(id, "坐骑内丹", 2)
				end

				if 通知开关 == true then
					广播消息({
						频道 = "xt",
						内容 = format("#S(齐天大圣)#R/%s#Y少侠打的#R黑白无常#Y，抱头鼠窜,慌忙献上#G/%s#Y以求活命。" .. "#" .. 取随机数(24, 24), 玩家数据[id].角色.数据.名称, 奖励名称[id])
					})
				end
			end
		end
	end

	地图处理类:删除单位(任务数据[任务id].地图编号, 任务数据[任务id].单位编号)

	任务数据[任务id] = nil
end

function 任务处理类:完成齐天阎王(任务id, id组)
	local 经验 = 0
	local 银子 = 0

	for n = 1, #id组 do
		local id = id组[n]

		if 队伍处理类:取是否助战(玩家数据[id].队伍, n) == 0 then
			local 平均等级 = 取队伍平均等级(玩家数据[id].队伍, id)
			经验 = 平均等级 * 平均等级 * 10
			银子 = 平均等级 * 250

			玩家数据[id].角色:添加经验(经验, "齐天大圣", 1)
			玩家数据[id].角色:添加银子(银子, "齐天大圣", 1)
			添加仙玉(10, 玩家数据[id].账号, id, "齐天大圣")
			召唤兽添加经验(math.floor(经验 * 0.8), id, "齐天大圣")

			local 奖励参数 = ygsj()

			if 奖励参数 <= 10 then
				local 名称 = "造化丹"

				玩家数据[id].道具:给予道具(id, 名称, 1)
				常规提示(id, "#Y/你获得了" .. 名称)
				广播消息({
					频道 = "xt",
					内容 = format("#S(齐天大圣)#R/%s#Y少侠打的#R十殿阎王#Y躲于岸下,将案台之上的#G/%s#Y漏了出来,顺手拿下。" .. "#" .. 取随机数(24, 24), 玩家数据[id].角色.数据.名称, 奖励名称[id])
				})
			elseif 奖励参数 <= 20 then
				local 名称 = "修炼果"

				玩家数据[id].道具:给予道具(id, 名称, 2)
				常规提示(id, "#Y/你获得了" .. 名称)
				广播消息({
					频道 = "xt",
					内容 = format("#S(齐天大圣)#R/%s#Y少侠打的#R十殿阎王#Y躲于岸下,将案台之上的#G/%s#Y漏了出来,顺手拿下。" .. "#" .. 取随机数(24, 24), 玩家数据[id].角色.数据.名称, 奖励名称[id])
				})
			elseif 奖励参数 <= 30 then
				local 名称 = "高级魔兽要诀"

				玩家数据[id].道具:给予道具(id, 名称, 1)
				常规提示(id, "#Y/你获得了" .. 名称)
				广播消息({
					频道 = "xt",
					内容 = format("#S(齐天大圣)#R/%s#Y少侠打的#R十殿阎王#Y躲于岸下,将案台之上的#G/%s#Y漏了出来,顺手拿下。" .. "#" .. 取随机数(24, 24), 玩家数据[id].角色.数据.名称, 奖励名称[id])
				})
			elseif 奖励参数 <= 40 then
				local 名称 = "法宝碎片"

				玩家数据[id].道具:给予道具(id, 名称, 1)
				常规提示(id, "#Y/你获得了" .. 名称)
				广播消息({
					频道 = "xt",
					内容 = format("#S(齐天大圣)#R/%s#Y少侠打的#R十殿阎王#Y躲于岸下,将案台之上的#G/%s#Y漏了出来,顺手拿下。" .. "#" .. 取随机数(24, 24), 玩家数据[id].角色.数据.名称, 奖励名称[id])
				})
			elseif 奖励参数 <= 50 then
				local 名称 = "星辉石"

				玩家数据[id].道具:给予道具(id, 名称, 取随机数(4, 5))
				常规提示(id, "#Y/你获得了" .. 名称)
				广播消息({
					频道 = "xt",
					内容 = format("#S(齐天大圣)#R/%s#Y少侠打的#R十殿阎王#Y躲于岸下,将案台之上的#G/%s#Y漏了出来,顺手拿下。" .. "#" .. 取随机数(24, 24), 玩家数据[id].角色.数据.名称, 奖励名称[id])
				})
			elseif 奖励参数 <= 60 then
				local 名称 = "魂环碎片"

				玩家数据[id].道具:给予道具(id, 名称, 1)
				常规提示(id, "#Y/你获得了" .. 名称)
				广播消息({
					频道 = "xt",
					内容 = format("#S(齐天大圣)#R/%s#Y少侠打的#R十殿阎王#Y躲于岸下,将案台之上的#G/%s#Y漏了出来,顺手拿下。" .. "#" .. 取随机数(24, 24), 玩家数据[id].角色.数据.名称, 奖励名称[id])
				})
			elseif 奖励参数 <= 75 then
				local 名称 = "灵饰指南书"

				玩家数据[id].道具:给予道具(id, "灵饰指南书", {
					6,
					10
				})
				常规提示(id, "#Y/你获得了" .. 名称)
				广播消息({
					频道 = "xt",
					内容 = format("#S(齐天大圣)#R/%s#Y少侠打的#R十殿阎王#Y躲于岸下,将案台之上的#G/%s#Y漏了出来,顺手拿下。" .. "#" .. 取随机数(24, 24), 玩家数据[id].角色.数据.名称, 奖励名称[id])
				})
			elseif 奖励参数 <= 90 then
				local 名称 = "元灵晶石"

				玩家数据[id].道具:给予道具(id, "元灵晶石", {
					6,
					10
				})
				常规提示(id, "#Y/你获得了" .. 名称)
				广播消息({
					频道 = "xt",
					内容 = format("#S(齐天大圣)#R/%s#Y少侠打的#R十殿阎王#Y躲于岸下,将案台之上的#G/%s#Y漏了出来,顺手拿下。" .. "#" .. 取随机数(24, 24), 玩家数据[id].角色.数据.名称, 奖励名称[id])
				})
			elseif 奖励参数 <= 97 then
				local 名称 = "坐骑内丹"

				玩家数据[id].道具:给予道具(id, 名称, 1)
				常规提示(id, "#Y/你获得了" .. 名称)
				广播消息({
					频道 = "xt",
					内容 = format("#S(齐天大圣)#R/%s#Y少侠打的#R十殿阎王#Y躲于岸下,将案台之上的#G/%s#Y漏了出来,顺手拿下。" .. "#" .. 取随机数(24, 24), 玩家数据[id].角色.数据.名称, 奖励名称[id])
				})
			end
		end
	end
end

function 任务处理类:完成齐天天王(任务id, id组)
	local 经验 = 0
	local 银子 = 0

	for n = 1, #id组 do
		local id = id组[n]

		if 队伍处理类:取是否助战(玩家数据[id].队伍, n) == 0 then
			local 平均等级 = 取队伍平均等级(玩家数据[id].队伍, id)
			经验 = 平均等级 * 平均等级 * 12
			银子 = 平均等级 * 250

			玩家数据[id].角色:添加经验(经验, "齐天大圣", 1)
			玩家数据[id].角色:添加银子(银子, "齐天大圣", 1)
			添加仙玉(10, 玩家数据[id].账号, id, "齐天大圣")
			召唤兽添加经验(math.floor(经验 * 0.8), id, "齐天大圣")

			local 奖励参数 = ygsj()

			if 奖励参数 <= 10 then
				local 名称 = "造化丹"

				玩家数据[id].道具:给予道具(id, 名称, 1)
				常规提示(id, "#Y/你获得了" .. 名称)
				广播消息({
					频道 = "xt",
					内容 = format("#S(齐天大圣)#R/%s#Y少侠与#R四大天王#Y战的难分难舍,衬其一个分神,使出了一招亢龙有悔,天王不敌乖乖奉上#G/%s" .. "#" .. 取随机数(24, 24), 玩家数据[id].角色.数据.名称, 奖励名称[id])
				})
			elseif 奖励参数 <= 20 then
				local 名称 = "修炼果"

				玩家数据[id].道具:给予道具(id, 名称, 2)
				常规提示(id, "#Y/你获得了" .. 名称)
				广播消息({
					频道 = "xt",
					内容 = format("#S(齐天大圣)#R/%s#Y少侠与#R四大天王#Y战的难分难舍,衬其一个分神,使出了一招亢龙有悔,天王不敌乖乖奉上#G/%s" .. "#" .. 取随机数(24, 24), 玩家数据[id].角色.数据.名称, 奖励名称[id])
				})
			elseif 奖励参数 <= 30 then
				local 名称 = "高级魔兽要诀"

				玩家数据[id].道具:给予道具(id, 名称, 1)
				常规提示(id, "#Y/你获得了" .. 名称)
				广播消息({
					频道 = "xt",
					内容 = format("#S(齐天大圣)#R/%s#Y少侠与#R四大天王#Y战的难分难舍,衬其一个分神,使出了一招亢龙有悔,天王不敌乖乖奉上#G/%s" .. "#" .. 取随机数(24, 24), 玩家数据[id].角色.数据.名称, 奖励名称[id])
				})
			elseif 奖励参数 <= 40 then
				local 名称 = "法宝碎片"

				玩家数据[id].道具:给予道具(id, 名称, 1)
				常规提示(id, "#Y/你获得了" .. 名称)
				广播消息({
					频道 = "xt",
					内容 = format("#S(齐天大圣)#R/%s#Y少侠与#R四大天王#Y战的难分难舍,衬其一个分神,使出了一招亢龙有悔,天王不敌乖乖奉上#G/%s" .. "#" .. 取随机数(24, 24), 玩家数据[id].角色.数据.名称, 奖励名称[id])
				})
			elseif 奖励参数 <= 50 then
				local 名称 = "星辉石"

				玩家数据[id].道具:给予道具(id, 名称, 取随机数(5, 6))
				常规提示(id, "#Y/你获得了" .. 名称)
				广播消息({
					频道 = "xt",
					内容 = format("#S(齐天大圣)#R/%s#Y少侠与#R四大天王#Y战的难分难舍,衬其一个分神,使出了一招亢龙有悔,天王不敌乖乖奉上#G/%s" .. "#" .. 取随机数(24, 24), 玩家数据[id].角色.数据.名称, 奖励名称[id])
				})
			elseif 奖励参数 <= 55 then
				local 名称 = "钨金"

				玩家数据[id].道具:给予道具(id, 名称, 160)
				常规提示(id, "#Y/你获得了" .. 名称)
				广播消息({
					频道 = "xt",
					内容 = format("#S(齐天大圣)#R/%s#Y少侠与#R四大天王#Y战的难分难舍,衬其一个分神,使出了一招亢龙有悔,天王不敌乖乖奉上#G/%s" .. "#" .. 取随机数(24, 24), 玩家数据[id].角色.数据.名称, 奖励名称[id])
				})
			elseif 奖励参数 <= 65 then
				local 名称 = "灵饰指南书"

				玩家数据[id].道具:给予道具(id, "灵饰指南书", {
					6,
					10
				})
				常规提示(id, "#Y/你获得了" .. 名称)
				广播消息({
					频道 = "xt",
					内容 = format("#S(齐天大圣)#R/%s#Y少侠与#R四大天王#Y战的难分难舍,衬其一个分神,使出了一招亢龙有悔,天王不敌乖乖奉上#G/%s" .. "#" .. 取随机数(24, 24), 玩家数据[id].角色.数据.名称, 奖励名称[id])
				})
			elseif 奖励参数 <= 75 then
				local 名称 = "元灵晶石"

				玩家数据[id].道具:给予道具(id, "元灵晶石", {
					6,
					10
				})
				常规提示(id, "#Y/你获得了" .. 名称)
				广播消息({
					频道 = "xt",
					内容 = format("#S(齐天大圣)#R/%s#Y少侠与#R四大天王#Y战的难分难舍,衬其一个分神,使出了一招亢龙有悔,天王不敌乖乖奉上#G/%s" .. "#" .. 取随机数(24, 24), 玩家数据[id].角色.数据.名称, 奖励名称[id])
				})
			elseif 奖励参数 <= 90 then
				local 名称 = "魂环碎片"

				玩家数据[id].道具:给予道具(id, 名称, 1)
				常规提示(id, "#Y/你获得了" .. 名称)
				广播消息({
					频道 = "xt",
					内容 = format("#S(齐天大圣)#R/%s#Y少侠与#R四大天王#Y战的难分难舍,衬其一个分神,使出了一招亢龙有悔,天王不敌乖乖奉上#G/%s" .. "#" .. 取随机数(24, 24), 玩家数据[id].角色.数据.名称, 奖励名称[id])
				})
			elseif 奖励参数 <= 97 then
				local 名称 = "坐骑内丹"

				玩家数据[id].道具:给予道具(id, 名称, 1)
				常规提示(id, "#Y/你获得了" .. 名称)
				广播消息({
					频道 = "xt",
					内容 = format("#S(齐天大圣)#R/%s#Y少侠与#R四大天王#Y战的难分难舍,衬其一个分神,使出了一招亢龙有悔,天王不敌乖乖奉上#G/%s" .. "#" .. 取随机数(24, 24), 玩家数据[id].角色.数据.名称, 奖励名称[id])
				})
			end
		end
	end
end

function 任务处理类:完成齐天盗马贼(任务id, id组)
	if 任务数据[任务id] == nil then
		return
	end

	local 经验 = 0
	local 银子 = 0

	for n = 1, #id组 do
		local id = id组[n]

		if 队伍处理类:取是否助战(玩家数据[id].队伍, n) == 0 then
			local 平均等级 = 取队伍平均等级(玩家数据[id].队伍, id)
			经验 = 平均等级 * 平均等级 * 10
			银子 = 平均等级 * 150

			玩家数据[id].角色:添加经验(经验, "盗马贼", 1)
			玩家数据[id].角色:添加银子(银子, "盗马贼", 1)
			添加仙玉(10, 玩家数据[id].账号, id, "盗马贼")
			召唤兽添加经验(math.floor(经验 * 0.8), id, "盗马贼")
		end
	end

	地图处理类:删除单位(任务数据[任务id].地图编号, 任务数据[任务id].单位编号)

	任务数据[任务id] = nil
end

function 任务处理类:完成齐天百万天兵(任务id, id组)
	if 任务数据[任务id] == nil then
		return
	end

	local 经验 = 0
	local 银子 = 0

	for n = 1, #id组 do
		local id = id组[n]

		if 队伍处理类:取是否助战(玩家数据[id].队伍, n) == 0 then
			local 平均等级 = 取队伍平均等级(玩家数据[id].队伍, id)
			经验 = 平均等级 * 平均等级 * 15
			银子 = 平均等级 * 400

			玩家数据[id].角色:添加经验(经验, "齐天大圣", 1)
			玩家数据[id].角色:添加银子(银子, "齐天大圣", 1)
			添加仙玉(10, 玩家数据[id].账号, id, "齐天大圣")
			召唤兽添加经验(math.floor(经验 * 0.8), id, "齐天大圣")

			local 奖励参数 = ygsj()

			if 奖励参数 <= 10 then
				local 名称 = "造化丹"

				玩家数据[id].道具:给予道具(id, 名称, 1)
				常规提示(id, "#Y/你获得了" .. 名称)
				广播消息({
					频道 = "xt",
					内容 = format("#S(齐天大圣)#R/%s#Y少侠神勇异常将#R百万天兵#Y吓的仓皇逃跑,连#G/%s#Y遗落都没有发现。" .. "#" .. 取随机数(24, 24), 玩家数据[id].角色.数据.名称, 奖励名称[id])
				})
			elseif 奖励参数 <= 20 then
				local 名称 = "修炼果"

				玩家数据[id].道具:给予道具(id, 名称, 2)
				常规提示(id, "#Y/你获得了" .. 名称)
				广播消息({
					频道 = "xt",
					内容 = format("#S(齐天大圣)#R/%s#Y少侠神勇异常将#R百万天兵#Y吓的仓皇逃跑,连#G/%s#Y遗落都没有发现。" .. "#" .. 取随机数(24, 24), 玩家数据[id].角色.数据.名称, 奖励名称[id])
				})
			elseif 奖励参数 <= 30 then
				local 名称 = "高级魔兽要诀"

				玩家数据[id].道具:给予道具(id, 名称, 1)
				常规提示(id, "#Y/你获得了" .. 名称)
				广播消息({
					频道 = "xt",
					内容 = format("#S(齐天大圣)#R/%s#Y少侠神勇异常将#R百万天兵#Y吓的仓皇逃跑,连#G/%s#Y遗落都没有发现。" .. "#" .. 取随机数(24, 24), 玩家数据[id].角色.数据.名称, 奖励名称[id])
				})
			elseif 奖励参数 <= 45 then
				local 名称 = "星辉石"

				玩家数据[id].道具:给予道具(id, 名称, 取随机数(6, 7))
				常规提示(id, "#Y/你获得了" .. 名称)
				广播消息({
					频道 = "xt",
					内容 = format("#S(齐天大圣)#R/%s#Y少侠神勇异常将#R百万天兵#Y吓的仓皇逃跑,连#G/%s#Y遗落都没有发现。" .. "#" .. 取随机数(24, 24), 玩家数据[id].角色.数据.名称, 奖励名称[id])
				})
			elseif 奖励参数 <= 55 then
				local 名称 = "法宝碎片"

				玩家数据[id].道具:给予道具(id, 名称, 2)
				常规提示(id, "#Y/你获得了" .. 名称)
				广播消息({
					频道 = "xt",
					内容 = format("#S(齐天大圣)#R/%s#Y少侠神勇异常将#R百万天兵#Y吓的仓皇逃跑,连#G/%s#Y遗落都没有发现。" .. "#" .. 取随机数(24, 24), 玩家数据[id].角色.数据.名称, 奖励名称[id])
				})
			elseif 奖励参数 <= 60 then
				local 名称 = "灵饰指南书"

				玩家数据[id].道具:给予道具(id, "灵饰指南书", {
					6,
					10
				})
				常规提示(id, "#Y/你获得了" .. 名称)
				广播消息({
					频道 = "xt",
					内容 = format("#S(齐天大圣)#R/%s#Y少侠神勇异常将#R百万天兵#Y吓的仓皇逃跑,连#G/%s#Y遗落都没有发现。" .. "#" .. 取随机数(24, 24), 玩家数据[id].角色.数据.名称, 奖励名称[id])
				})
			elseif 奖励参数 <= 70 then
				local 名称 = "元灵晶石"

				玩家数据[id].道具:给予道具(id, "元灵晶石", {
					6,
					10
				})
				常规提示(id, "#Y/你获得了" .. 名称)
				广播消息({
					频道 = "xt",
					内容 = format("#S(齐天大圣)#R/%s#Y少侠神勇异常将#R百万天兵#Y吓的仓皇逃跑,连#G/%s#Y遗落都没有发现。" .. "#" .. 取随机数(24, 24), 玩家数据[id].角色.数据.名称, 奖励名称[id])
				})
			elseif 奖励参数 <= 78 then
				local 名称 = "魂环碎片"

				玩家数据[id].道具:给予道具(id, 名称, 1)
				常规提示(id, "#Y/你获得了" .. 名称)
				广播消息({
					频道 = "xt",
					内容 = format("#S(齐天大圣)#R/%s#Y少侠神勇异常将#R百万天兵#Y吓的仓皇逃跑,连#G/%s#Y遗落都没有发现。" .. "#" .. 取随机数(24, 24), 玩家数据[id].角色.数据.名称, 奖励名称[id])
				})
			elseif 奖励参数 <= 86 then
				local 名称 = "武神丹"

				玩家数据[id].道具:给予道具(id, 名称, 2)
				常规提示(id, "#Y你获得了#R" .. 名称)
				广播消息({
					频道 = "xt",
					内容 = format("#S(齐天大圣)#R/%s#Y少侠神勇异常将#R百万天兵#Y吓的仓皇逃跑,连#G/%s#Y遗落都没有发现。" .. "#" .. 取随机数(24, 24), 玩家数据[id].角色.数据.名称, 奖励名称[id])
				})
			elseif 奖励参数 <= 97 then
				local 名称 = "坐骑内丹"

				玩家数据[id].道具:给予道具(id, 名称, 1)
				常规提示(id, "#Y/你获得了" .. 名称)
				广播消息({
					频道 = "xt",
					内容 = format("#S(齐天大圣)#R/%s#Y少侠神勇异常将#R百万天兵#Y吓的仓皇逃跑,连#G/%s#Y遗落都没有发现。" .. "#" .. 取随机数(24, 24), 玩家数据[id].角色.数据.名称, 奖励名称[id])
				})
			end
		end
	end

	地图处理类:删除单位(任务数据[任务id].地图编号, 任务数据[任务id].单位编号)

	任务数据[任务id] = nil
end

function 任务处理类:完成齐天巨灵神(任务id, id组)
	if 任务数据[任务id] == nil then
		return
	end

	local 经验 = 0
	local 银子 = 0

	for n = 1, #id组 do
		local id = id组[n]

		if 队伍处理类:取是否助战(玩家数据[id].队伍, n) == 0 then
			local 平均等级 = 取队伍平均等级(玩家数据[id].队伍, id)
			经验 = 平均等级 * 平均等级 * 15
			银子 = 平均等级 * 400

			玩家数据[id].角色:添加经验(经验, "齐天大圣", 1)
			玩家数据[id].角色:添加银子(银子, "齐天大圣", 1)
			添加仙玉(10, 玩家数据[id].账号, id, "齐天大圣")
			召唤兽添加经验(math.floor(经验 * 0.8), id, "齐天大圣")

			local 奖励参数 = ygsj()

			if 奖励参数 <= 10 then
				if ygsj() <= 50 then
					奖励名称[id] = 快捷给道具(id, "制造指南书", 取随机数(6, 10))
				else
					奖励名称[id] = 快捷给道具(id, "百炼精铁", 取随机数(6, 10))
				end

				广播消息({
					频道 = "xt",
					内容 = format("#S(齐天大圣)#R/%s#Y少侠艰难的战胜#R巨灵神#Y，最终略胜一筹并将#G/%s#Y抢了过来。" .. "#" .. 取随机数(24, 24), 玩家数据[id].角色.数据.名称, 奖励名称[id])
				})
			elseif 奖励参数 <= 20 then
				奖励名称[id] = 快捷给道具(id, "修炼果", 3)

				广播消息({
					频道 = "xt",
					内容 = format("#S(齐天大圣)#R/%s#Y少侠艰难的战胜#R巨灵神#Y，最终略胜一筹并将#G/%s#Y抢了过来。" .. "#" .. 取随机数(24, 24), 玩家数据[id].角色.数据.名称, 奖励名称[id])
				})
			elseif 奖励参数 <= 30 then
				奖励名称[id] = 快捷给道具(id, "高级魔兽要诀", 1)

				广播消息({
					频道 = "xt",
					内容 = format("#S(齐天大圣)#R/%s#Y少侠艰难的战胜#R巨灵神#Y，最终略胜一筹并将#G/%s#Y抢了过来。" .. "#" .. 取随机数(24, 24), 玩家数据[id].角色.数据.名称, 奖励名称[id])
				})
			elseif 奖励参数 <= 35 then
				奖励名称[id] = 快捷给道具(id, "炼兽真经", 1)

				广播消息({
					频道 = "xt",
					内容 = format("#S(齐天大圣)#R/%s#Y少侠艰难的战胜#R巨灵神#Y，最终略胜一筹并将#G/%s#Y抢了过来。" .. "#" .. 取随机数(24, 24), 玩家数据[id].角色.数据.名称, 奖励名称[id])
				})
			elseif 奖励参数 <= 45 then
				奖励名称[id] = 快捷给道具(id, "星辉石", 取随机数(7, 8))

				广播消息({
					频道 = "xt",
					内容 = format("#S(齐天大圣)#R/%s#Y少侠艰难的战胜#R巨灵神#Y，最终略胜一筹并将#G/%s#Y抢了过来。" .. "#" .. 取随机数(24, 24), 玩家数据[id].角色.数据.名称, 奖励名称[id])
				})
			elseif 奖励参数 <= 55 then
				奖励名称[id] = 快捷给道具(id, "钨金", 160)

				广播消息({
					频道 = "xt",
					内容 = format("#S(齐天大圣)#R/%s#Y少侠艰难的战胜#R巨灵神#Y，最终略胜一筹并将#G/%s#Y抢了过来。" .. "#" .. 取随机数(24, 24), 玩家数据[id].角色.数据.名称, 奖励名称[id])
				})
			elseif 奖励参数 <= 65 then
				local 名称 = "魂环碎片"

				玩家数据[id].道具:给予道具(id, 名称, 2)
				常规提示(id, "#Y/你获得了" .. 名称)
				广播消息({
					频道 = "xt",
					内容 = format("#S(齐天大圣)#R/%s#Y少侠艰难的战胜#R巨灵神#Y，最终略胜一筹并将#G/%s#Y抢了过来。" .. "#" .. 取随机数(24, 24), 玩家数据[id].角色.数据.名称, 奖励名称[id])
				})
			elseif 奖励参数 <= 75 then
				local 名称 = "武神丹"

				玩家数据[id].道具:给予道具(id, 名称, 2)
				常规提示(id, "#Y你获得了#R" .. 名称)
				广播消息({
					频道 = "xt",
					内容 = format("#S(齐天大圣)#R/%s#Y少侠艰难的战胜#R巨灵神#Y，最终略胜一筹并将#G/%s#Y抢了过来。" .. "#" .. 取随机数(24, 24), 玩家数据[id].角色.数据.名称, 奖励名称[id])
				})
			elseif 奖励参数 <= 84 then
				local 名称 = "法宝碎片"

				玩家数据[id].道具:给予道具(id, 名称, 3)
				常规提示(id, "#Y/你获得了" .. 名称)
				广播消息({
					频道 = "xt",
					内容 = format("#S(齐天大圣)#R/%s#Y少侠艰难的战胜#R巨灵神#Y，最终略胜一筹并将#G/%s#Y抢了过来。" .. "#" .. 取随机数(24, 24), 玩家数据[id].角色.数据.名称, 奖励名称[id])
				})
			elseif 奖励参数 <= 86 then
				local 名称 = "特性宝珠"

				玩家数据[id].道具:给予道具(id, 名称)
				常规提示(id, "#Y/你获得了" .. 名称)
				广播消息({
					频道 = "xt",
					内容 = format("#S(齐天大圣)#R/%s#Y少侠艰难的战胜#R巨灵神#Y，最终略胜一筹并将#G/%s#Y抢了过来。" .. "#" .. 取随机数(24, 24), 玩家数据[id].角色.数据.名称, 奖励名称[id])
				})
			elseif 奖励参数 <= 97 then
				local 名称 = "坐骑内丹"

				玩家数据[id].道具:给予道具(id, 名称, 1)
				常规提示(id, "#Y/你获得了" .. 名称)
				广播消息({
					频道 = "xt",
					内容 = format("#S(齐天大圣)#R/%s#Y少侠艰难的战胜#R巨灵神#Y，最终略胜一筹并将#G/%s#Y抢了过来。" .. "#" .. 取随机数(24, 24), 玩家数据[id].角色.数据.名称, 奖励名称[id])
				})
			end
		end
	end

	地图处理类:删除单位(任务数据[任务id].地图编号, 任务数据[任务id].单位编号)

	任务数据[任务id] = nil
end

function 任务处理类:完成齐天镇塔之神(任务id, id组)
	local 名称 = ""
	local 经验 = 0
	local 银子 = 0

	for n = 1, #id组 do
		local id = id组[n]

		if 队伍处理类:取是否助战(玩家数据[id].队伍, n) == 0 then
			local 平均等级 = 取队伍平均等级(玩家数据[id].队伍, id)
			经验 = 平均等级 * 平均等级 * 15
			银子 = 平均等级 * 400

			玩家数据[id].角色:添加经验(经验, "齐天大圣", 1)
			玩家数据[id].角色:添加银子(银子, "齐天大圣", 1)
			添加仙玉(10, 玩家数据[id].账号, id, "齐天大圣")
			召唤兽添加经验(math.floor(经验 * 0.8), id, "齐天大圣")

			if 玩家数据[id].角色.数据.副本难度 ~= nil and 玩家数据[id].角色.数据.副本难度 < 3 then
				玩家数据[id].角色.数据.副本难度 = 3
			end

			local 奖励参数 = ygsj()

			if 奖励参数 <= 10 then
				if ygsj() <= 50 then
					奖励名称[id] = 快捷给道具(id, "制造指南书", 取随机数(10, 12))
				else
					奖励名称[id] = 快捷给道具(id, "百炼精铁", 取随机数(10, 12))
				end

				广播消息({
					频道 = "xt",
					内容 = format("#S(齐天大圣)#R/%s#Y少侠费劲九牛二虎之力,终是从#R七窍琉璃塔#Y中脱困而出,顺手将#G/%s#Y抢了过来。" .. "#" .. 取随机数(24, 24), 玩家数据[id].角色.数据.名称, 奖励名称[id])
				})
			elseif 奖励参数 <= 20 then
				奖励名称[id] = 快捷给道具(id, "修炼果", 5)

				广播消息({
					频道 = "xt",
					内容 = format("#S(齐天大圣)#R/%s#Y少侠费劲九牛二虎之力,终是从#R七窍琉璃塔#Y中脱困而出,顺手将#G/%s#Y抢了过来。" .. "#" .. 取随机数(24, 24), 玩家数据[id].角色.数据.名称, 奖励名称[id])
				})
			elseif 奖励参数 <= 30 then
				奖励名称[id] = 快捷给道具(id, "高级魔兽要诀", 1)

				广播消息({
					频道 = "xt",
					内容 = format("#S(齐天大圣)#R/%s#Y少侠费劲九牛二虎之力,终是从#R七窍琉璃塔#Y中脱困而出,顺手将#G/%s#Y抢了过来。" .. "#" .. 取随机数(24, 24), 玩家数据[id].角色.数据.名称, 奖励名称[id])
				})
			elseif 奖励参数 <= 35 then
				奖励名称[id] = 快捷给道具(id, "炼兽真经", 1)

				广播消息({
					频道 = "xt",
					内容 = format("#S(齐天大圣)#R/%s#Y少侠费劲九牛二虎之力,终是从#R七窍琉璃塔#Y中脱困而出,顺手将#G/%s#Y抢了过来。" .. "#" .. 取随机数(24, 24), 玩家数据[id].角色.数据.名称, 奖励名称[id])
				})
			elseif 奖励参数 <= 45 then
				奖励名称[id] = 快捷给道具(id, "星辉石", 取随机数(9, 10))

				广播消息({
					频道 = "xt",
					内容 = format("#S(齐天大圣)#R/%s#Y少侠费劲九牛二虎之力,终是从#R七窍琉璃塔#Y中脱困而出,顺手将#G/%s#Y抢了过来。" .. "#" .. 取随机数(24, 24), 玩家数据[id].角色.数据.名称, 奖励名称[id])
				})
			elseif 奖励参数 <= 55 then
				奖励名称[id] = 快捷给道具(id, "钨金", 160)

				广播消息({
					频道 = "xt",
					内容 = format("#S(齐天大圣)#R/%s#Y少侠费劲九牛二虎之力,终是从#R七窍琉璃塔#Y中脱困而出,顺手将#G/%s#Y抢了过来。" .. "#" .. 取随机数(24, 24), 玩家数据[id].角色.数据.名称, 奖励名称[id])
				})
			elseif 奖励参数 <= 73 then
				奖励名称[id] = 快捷给道具(id, "魂环碎片", 5)

				广播消息({
					频道 = "xt",
					内容 = format("#S(齐天大圣)#R/%s#Y少侠费劲九牛二虎之力,终是从#R七窍琉璃塔#Y中脱困而出,顺手将#G/%s#Y抢了过来。" .. "#" .. 取随机数(24, 24), 玩家数据[id].角色.数据.名称, 奖励名称[id])
				})
			elseif 奖励参数 <= 75 then
				奖励名称[id] = 快捷给道具(id, "特性宝珠", 1)

				广播消息({
					频道 = "xt",
					内容 = format("#S(齐天大圣)#R/%s#Y少侠费劲九牛二虎之力,终是从#R七窍琉璃塔#Y中脱困而出,顺手将#G/%s#Y抢了过来。" .. "#" .. 取随机数(24, 24), 玩家数据[id].角色.数据.名称, 奖励名称[id])
				})
			elseif 奖励参数 <= 85 then
				奖励名称[id] = 快捷给道具(id, "吸附石", 2)

				广播消息({
					频道 = "xt",
					内容 = format("#S(齐天大圣)#R/%s#Y少侠费劲九牛二虎之力,终是从#R七窍琉璃塔#Y中脱困而出,顺手将#G/%s#Y抢了过来。" .. "#" .. 取随机数(24, 24), 玩家数据[id].角色.数据.名称, 奖励名称[id])
				})
			elseif 奖励参数 <= 86 then
				local 名称 = "高级魔兽要诀"
				local 技能 = 取特殊要诀1()

				玩家数据[id].道具:给予道具(id, 名称, nil, 技能)

				名称 = 技能

				常规提示(id, "#Y/你获得了" .. 名称)
				广播消息({
					频道 = "xt",
					内容 = format("#S(齐天大圣)#R/%s#Y少侠费劲九牛二虎之力,终是从#R七窍琉璃塔#Y中脱困而出,顺手将#G/%s#Y抢了过来。" .. "#" .. 取随机数(24, 24), 玩家数据[id].角色.数据.名称, 名称)
				})
			elseif 奖励参数 <= 97 then
				奖励名称[id] = 快捷给道具(id, "坐骑内丹", 1)

				广播消息({
					频道 = "xt",
					内容 = format("#S(齐天大圣)#R/%s#Y少侠费劲九牛二虎之力,终是从#R七窍琉璃塔#Y中脱困而出,顺手将#G/%s#Y抢了过来。" .. "#" .. 取随机数(24, 24), 玩家数据[id].角色.数据.名称, 奖励名称[id])
				})
			end
		end
	end
end

function 任务处理类:捣乱的年兽()
	年兽数据 = {
		捣乱的年兽 = 20,
		年兽王 = 4
	}
	local 地图范围 = {
		1501,
		1070,
		1208,
		1092
	}

	for n = 1, #地图范围 do
		for i = 1, 20 do
			local xy = 地图处理类.地图坐标[地图范围[n]]:取随机点()
			local 任务id = "_356_" .. os.time() .. "_" .. 取随机数(88, 99999999) .. i
			local 造型 = {
				"古代瑞兽"
			}
			local 造型 = 造型[取随机数(1, #造型)]
			任务数据[任务id] = {
				行走开关 = true,
				等级 = 100,
				结束 = 1800,
				显示饰品 = true,
				名称 = "捣乱的年兽",
				类型 = 356,
				id = 任务id,
				起始 = os.time(),
				玩家id = id,
				队伍组 = {},
				模型 = 造型,
				x = xy.x,
				y = xy.y,
				地图编号 = 地图范围[n],
				地图名称 = 取地图名称(地图范围[n])
			}

			地图处理类:添加单位(任务id)
		end
	end

	for n = 1, #地图范围 do
		local xy = 地图处理类.地图坐标[地图范围[n]]:取随机点()
		local 任务id = "_357_" .. os.time() .. "_" .. 取随机数(88, 99999999) .. n
		local 造型 = {
			"进阶古代瑞兽"
		}
		local 造型 = 造型[取随机数(1, #造型)]
		任务数据[任务id] = {
			行走开关 = true,
			等级 = 100,
			结束 = 1800,
			显示饰品 = true,
			名称 = "年兽王",
			类型 = 357,
			id = 任务id,
			起始 = os.time(),
			玩家id = id,
			队伍组 = {},
			模型 = 造型,
			x = xy.x,
			y = xy.y,
			地图编号 = 地图范围[n],
			地图名称 = 取地图名称(地图范围[n])
		}

		地图处理类:添加单位(任务id)
	end

	广播消息({
		频道 = "xt",
		内容 = format("#G在民间四处作乱的年兽出现在建邺城、长寿村、朱紫国、傲来国等地，玩家可以前去驱赶捣乱的年兽获得丰厚的奖励。" .. "#" .. 取随机数(24, 24))
	})
end

function 任务处理类:邪恶年兽()
	local 地图范围 = {
		1501
	}

	for n = 1, #地图范围 do
		local xy = 地图处理类.地图坐标[地图范围[n]]:取随机点()
		local 任务id = "_358_" .. os.time() .. "_" .. 取随机数(88, 99999999) .. n
		local 造型 = {
			"进阶古代瑞兽"
		}
		local 造型 = 造型[取随机数(1, #造型)]
		任务数据[任务id] = {
			行走开关 = true,
			等级 = 100,
			结束 = 1800,
			显示饰品 = true,
			名称 = "邪恶年兽·魔",
			类型 = 358,
			id = 任务id,
			起始 = os.time(),
			玩家id = id,
			队伍组 = {},
			模型 = 造型,
			x = xy.x,
			y = xy.y,
			地图编号 = 地图范围[n],
			地图名称 = 取地图名称(地图范围[n])
		}

		地图处理类:添加单位(任务id)
	end

	广播消息({
		频道 = "xt",
		内容 = format("#G由于大量猎杀年兽，引起了#R邪恶年兽·魔#G的注意，#R邪恶年兽·魔#G已经降临在建邺城，有实力的玩家可以前去挑战。" .. "#" .. 取随机数(24, 24))
	})
end

function 任务处理类:完成捣乱的年兽(任务id, id组)
	if 任务数据[任务id] == nil then
		return
	end

	local 删 = false

	for n = 1, #id组 do
		local id = id组[n]

		if 添加活动次数(id, "捣乱的年兽") == true then
			删 = true

			通用给奖励(id, {
				活跃度 = 2,
				经验 = {
					2200,
					2500
				},
				银子 = {
					1500,
					1800
				}
			}, "捣乱的年兽", nil, "不判断次数")
		end
	end

	if 删 then
		年兽数据.捣乱的年兽 = 年兽数据.捣乱的年兽 - 1

		if 年兽数据.捣乱的年兽 <= 0 then
			年兽数据.捣乱的年兽 = 0
		end

		if 年兽数据.捣乱的年兽 == 0 and 年兽数据.年兽王 == 0 then
			任务处理类:邪恶年兽()
		end

		地图处理类:删除单位(任务数据[任务id].地图编号, 任务数据[任务id].单位编号)

		任务数据[任务id] = nil
	end
end

function 任务处理类:完成年兽王(任务id, id组)
	if 任务数据[任务id] == nil then
		return
	end

	local 删 = false

	for n = 1, #id组 do
		local id = id组[n]

		if 添加活动次数(id, "年兽王") == true then
			删 = true

			通用给奖励(id, {
				活跃度 = 5,
				经验 = {
					5000,
					6000
				},
				银子 = {
					2500,
					2800
				}
			}, "年兽王", nil, "不判断次数")
		end
	end

	if 删 then
		年兽数据.年兽王 = 年兽数据.年兽王 - 1

		if 年兽数据.年兽王 <= 0 then
			年兽数据.年兽王 = 0
		end

		if 年兽数据.捣乱的年兽 == 0 and 年兽数据.年兽王 == 0 then
			任务处理类:邪恶年兽()
		end

		地图处理类:删除单位(任务数据[任务id].地图编号, 任务数据[任务id].单位编号)

		任务数据[任务id] = nil
	end
end

function 任务处理类:完成邪恶年兽(任务id, id组)
	if 任务数据[任务id] == nil then
		return
	end

	local 删 = false

	for n = 1, #id组 do
		local id = id组[n]

		if 添加活动次数(id, "邪恶年兽") == true then
			删 = true

			通用给奖励(id, {
				活跃度 = 30,
				经验 = {
					10000,
					13000
				},
				银子 = {
					8000,
					10000
				}
			}, "邪恶年兽", nil, "不判断次数")
		end
	end

	if 删 then
		地图处理类:删除单位(任务数据[任务id].地图编号, 任务数据[任务id].单位编号)

		任务数据[任务id] = nil
	end
end

function 任务处理类:提升经验倍数100(任务id, id组)
	服务端参数.经验获得率 = 2

	f函数.写配置(程序目录 .. "配置文件.ini", "主要配置", "经验", 服务端参数.经验获得率)
	发送公告("#S(全区经验和爆率倍数)#G提升#Y200%#G感谢玩家#R" .. 玩家数据[id组[1]].角色.数据.名称 .. "#G带领队员挑战成功#P史诗级剧情战斗商人的鬼魂#")
end

function 任务处理类:提升经验倍数5()
	服务端参数.经验获得率 = 1

	f函数.写配置(程序目录 .. "配置文件.ini", "主要配置", "经验", 服务端参数.经验获得率)
	发送公告("#S(全区经验倍数)#G提升#Y2倍#G感谢大家成功完成突厥攻城活动")
end

function 任务处理类:全服蚩尤(任务id, id组)
	开启帮派竞赛()
	发送公告("#S(全服活动)#G雪人材料#Y收集完成#G感谢大家努力,现在可以去周杰伦处,挑战刻晴!")
end

function 任务处理类:取新手指引说明(id, 任务id)
	local 名称 = "初入桃源村"
	local 说明 = ""
	local 备注 = "第一章节，桃园回忆"
	local 进程 = 任务数据[任务id].进程

	if 进程 == 1 then
		说明 = [[
欢迎来到#P/吊游三#W/
#Z/剧情加强版#W/
由我来带你开启
#Y/全新的梦幻之旅吧
先去旁边找到
#S/新手接待师#W/进行福利领取吧!]]
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "新手接待师", 1003)
	elseif 进程 == 2 then
		说明 = "去找#G狼宝#领取#G助战伙伴\n然后去找#G/霞姑娘#W/正式的进行剧情任务吧，她就在#Y/水池右下方不远处"
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "霞姑娘", 1003)
	elseif 进程 == 3 then
		说明 = "你已经观看完回忆#S/\n现在可以去找#W/旁边的#G/刘大婶\n#W进行桃源村之旅"
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "刘大婶", 1003)
	elseif 进程 == 4 then
		说明 = "你获得了一套装备\n但是#S大侠们#是不能#G饿肚子的\n去找#Y孙厨娘#拿点吃的吧"
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "孙厨娘", 1003)
	elseif 进程 == 5 then
		说明 = [[
现在吃的也有了
但是风吹日晒的
万一有个#G感冒发烧#怎么办
桃源村有个#Y玄大夫
找他要点#G药品#啥的
以备不时之需]]
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "玄大夫", 1003)
	elseif 进程 == 6 then
		说明 = [[
万事俱备
但你还差一件最重要的东西
行走江湖怎么能没#R武器#呢
去问问#Y桃园村长
有没有一点趁手的
#G兵器#让你使用]]
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "谭村长", 1003)
	elseif 进程 == 7 then
		说明 = [[
现在什么东西都齐了
你感觉你浑身都充满了#S力量
总想找一个人#Y干一架
完全没问题,你可以到
#G孙猎户#那里练练手
先#Z升级#自己#S等级
现在你可以打开#G助战界面#
对#R助战#进行培养了
把助战#Y加入门派#G学好技能]]
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "孙猎户", 1003)
	end

	return {
		名称,
		说明,
		备注,
		坐标 = self.快捷坐标
	}
end

快捷设置任务坐标 = function(id, 任务id, NPC名称, 地图编号, 地图名称)
	local 坐标 = nil

	if 地图编号 ~= nil or 地图名称 ~= nil then
		if 地图编号 == nil then
			地图编号 = 地图名称转地图id(地图名称)
		end

		if 地图编号 == nil then
			return nil
		end

		坐标 = 取假人表1(地图编号, nil, NPC名称)

		if 坐标 == nil then
			return nil
		end

		坐标.地图编号 = 地图编号
		坐标.名称 = NPC名称

		return 坐标
	else
		return nil
	end
end

取门派师傅自动寻路数据 = function(id)
	if 玩家数据[id].角色.数据.门派 ~= "无" then
		local mp = 玩家数据[id].角色.数据.门派
		local aa = 快捷设置任务坐标(nil, nil, 门派师傅坐标[mp][4], 门派师傅坐标[mp][1])

		if aa ~= nil then
			return 取NPC寻路信息(aa.地图编号, aa.名称, aa.X, aa.Y)
		end
	end

	return nil
end

取NPC自动寻路数据 = function(NPC名称, 地图编号, 地图名称)
	local aa = 快捷设置任务坐标(nil, nil, NPC名称, 地图编号, 地图名称)

	if aa ~= nil then
		return 取NPC寻路信息(aa.地图编号, aa.名称, aa.X, aa.Y)
	end

	return nil
end

function 任务处理类:取商人的鬼魂(id, 任务id)
	local 名称 = "商人的鬼魂"
	local 说明 = ""
	local 备注 = "第二章节，沉船降妖"
	local 进程 = 任务数据[任务id].进程

	if 进程 == 1 then
		说明 = [[
恭喜你完成了
桃源村的#S新手任务
现在你正式踏上了
#Z西行取经剧情之旅
最近#G建邺城#老是
传出闹鬼的事情
取找#Y老孙头#问问清楚]]
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "老孙头", nil, "建邺城")
	elseif 进程 == 2 then
		说明 = "你得去找#G牛大胆\n问问如何操办一场#Y法事\n给海底的亡魂们进行超度"
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "牛大胆", nil, "建邺城")
	elseif 进程 == 3 then
		说明 = [[
牛大胆叫你去给他弄
一只#Y烤鸭#来
而且必须还是#G王大嫂#做的鸭
赶紧出发去找#S鸭#吧#29]]
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "王大嫂", nil, "建邺城")
	elseif 进程 == 4 then
		说明 = [[
王大嫂需要你帮他找#Y熊胆
给他的孩子治病
但是熊胆挺贵的
如果你#G钱不够
可以选择去抓点海鲜
卖个#S海鲜收购商#换取银两]]
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "王大嫂", nil, "建邺城")
	elseif 进程 == 5 then
		说明 = [[
你现在已经拿到#Y烤鸭#了
千万别自己#R吃掉#或#S扔掉哦
不然无法进行剧情任务
废话不多说把烤鸭
交给#G牛大胆#吧]]
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "牛大胆", nil, "建邺城")
	elseif 进程 == 6 then
		说明 = [[
牛大胆已经
开始筹办法事了
他现在叫你去找#Y老孙头
把#G安魂草#给他
让他免受鬼魂骚扰
(#S该道具无需上交
#S直接找对应NPC就行#)]]
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "老孙头", nil, "建邺城")
	elseif 进程 == 7 then
		说明 = [[
听闻海底沉船
每年都会#G闹鬼
所以老孙头叫你
去找#S李善人的管家
看看他那边有
什么需要帮忙的]]
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "管家", nil, "建邺城")
	elseif 进程 == 8 then
		说明 = [[
去建邺城找找
#G马全有#想办法看
能不能弄到#Y地狱灵芝
然后交给李善人治好他的病]]
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "马全有", nil, "建邺城")
	elseif 进程 == 9 then
		说明 = [[
马友全说叫你
给他抓一只#Y海毛虫
他才肯将#G地狱灵芝#给你
为了治好李善人的病
你得抓紧了#84
(#S请不要把上交的宠物
#G设置为参战状态#)]]
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "马全有", nil, "建邺城")
	elseif 进程 == 10 then
		说明 = [[
你已经获得了#Y地狱灵芝
现在可以将该物品
交给#G李善人#了
治好了他的病
他才会给你#R钱#1
请不要把该物品
自己#S使用#或者#G扔掉
以免无法触发
下面的剧情任务]]
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "李善人", 1534)
	elseif 进程 == 11 then
		说明 = [[
李善人给你讲述了
事情的缘由,现在你可以
去#Y海底沉船#调查一番
找到那个#G鬼魂
然后尝试超度它
(#G建议等级10级#)]]
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "商人的鬼魂", 1509)
	elseif 进程 == 12 then
		说明 = "你已成功超度#Y商人的鬼魂\n现在回建邺城\n找#G李善人#领取酬劳吧#1"
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "李善人", 1534)
	end

	return {
		名称,
		说明,
		备注,
		坐标 = self.快捷坐标
	}
end

function 任务处理类:取妖风支线(id, 任务id)
	local 名称 = "支线彩蛋-妖风"
	local 说明 = ""
	local 备注 = "支线彩蛋-妖风"
	local 进程 = 任务数据[任务id].进程

	if 进程 == 1 then
		说明 = [[
你打开宝箱发现来自一个
神秘男子的留言,说:
#G建邺城#的#Y雷黑子
其实这沉船鬼怪
#S妖风#所变化而来
赶紧找到#Y雷黑子
问问详情!]]
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "雷黑子", nil, "建邺城")
	elseif 进程 == 2 then
		说明 = [[
找到#S妖风#干掉他
为死去的#G海难者#报仇
为#Y雷黑子#报仇!#4
(#G建议等级20级#)]]
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "妖风", 1508)
	end

	return {
		名称,
		说明,
		备注,
		坐标 = self.快捷坐标
	}
end

function 任务处理类:取新枯萎金莲支线(id, 任务id)
	local 名称 = "新枯萎金莲"
	local 说明 = ""
	local 备注 = "新枯萎金莲"
	local 进程 = 任务数据[任务id].进程

	if 进程 == 1 then
		说明 = "去问问#G吹牛王\n有没有#Y虎子#的线索"
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "吹牛王", nil, "建邺城")
	elseif 进程 == 2 then
		说明 = "去问问#G马全有\n关于#Y虎子#失踪的事情"
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "马全有", nil, "建邺城")
	elseif 进程 == 3 then
		说明 = "要到东海湾找虎子\n先找#G雷黑子#借狗一用"
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "雷黑子", nil, "建邺城")
	elseif 进程 == 4 then
		说明 = "旺财跑到#G小花\n那里去了,去找她吧"
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "小花", nil, "建邺城")
	elseif 进程 == 5 then
		说明 = "旺财往东海湾跑了\n到东海湾找#G云游神医#问一问"
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "云游神医", nil, "东海湾")
	elseif 进程 == 6 then
		说明 = "和云游神医对话\n开启#S僵尸虎子#战斗\n(#G建议等级10级#)"
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "云游神医", nil, "东海湾")
	elseif 进程 == 7 then
		说明 = "找#G云游神医\n问个究竟!"
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "云游神医", nil, "东海湾")
	elseif 进程 == 8 then
		说明 = "找#G楚恋依\n询问治疗虎子的办法"
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "楚恋依", nil, "东海湾")
	elseif 进程 == 9 then
		说明 = "去哪里找莲花呢\n还是先把旺财还给\n建邺的#G雷黑子#吧"
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "雷黑子", nil, "建邺城")
	elseif 进程 == 10 then
		说明 = "找#G小花\n问问关于金莲的事情"
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "小花", nil, "建邺城")
	elseif 进程 == 11 then
		说明 = "把#Y枯萎的金莲\n交给东海湾楚恋依"
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "楚恋依", nil, "东海湾")
	elseif 进程 == 12 then
		说明 = "回去告诉#G王大嫂\n虎子已经没事了"
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "王大嫂", nil, "建邺城")
	end

	return {
		名称,
		说明,
		备注,
		坐标 = self.快捷坐标
	}
end

function 任务处理类:取桃园浣熊支线(id, 任务id)
	local 名称 = "干掉狸猫"
	local 说明 = ""
	local 备注 = "干掉狸猫"
	local 进程 = 任务数据[任务id].进程

	if 进程 == 1 then
		说明 = "可恶的狸猫\n老是#Y性骚扰#帅气的郭大哥\n教训他们一下"
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "郭大哥", 1003)
	elseif 进程 == 2 then
		说明 = "你已经打败了狸猫\n找#G郭大哥#领取报酬吧!"
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "郭大哥", 1003)
	end

	return {
		名称,
		说明,
		备注,
		坐标 = self.快捷坐标
	}
end

function 任务处理类:取新手指引任务(id, 任务id)
	local 名称 = "新手指引"
	local 说明 = ""
	local 备注 = "新手指引"
	local 进程 = 任务数据[任务id].进程

	if 进程 == 1 then
		说明 = [[
去建邺衙门
找#G赵捕头
他似乎有些事情给你做
#Y王大嫂#也有支线任务给你做
#R必须#找#Y哥哥快#开启#G梦战剧情]]
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "赵捕头", 1501)
	elseif 进程 == 2 then
		说明 = [[
去长安城
找#G长安导游
他会指引你下一步
(#Y20级后开启)]]
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "长安导游", 1001)
	elseif 进程 == 3 then
		说明 = "回到自己的门派\n找师傅完成一次\n#G师门任务"
	elseif 进程 == 4 then
		说明 = [[
在长安双处
找到#G皇宫护卫#
完成一次赏金任务
上交一轮#Y心魔宝珠]]
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "皇宫护卫", 1001)
	elseif 进程 == 5 then
		说明 = "在长安书店\n找到#G颜如玉#\n完成#Y一次打工"
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "颜如玉", 1019)
	elseif 进程 == 6 then
		说明 = [[
在铁匠铺
找到#G打铁炉#
完成#Y一次装备打造
如果#G打造技能等级#不够
请先提升#Y打造技能等级]]
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "打铁炉", 1025)
	elseif 进程 == 7 then
		说明 = "回到长安导游处\n领取#G新手指引任务#奖励"
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "长安导游", 1001)
	end

	return {
		名称,
		说明,
		备注,
		坐标 = self.快捷坐标
	}
end

function 任务处理类:取梦战第一章(id, 任务id)
	local 名称 = "旭梦篇"
	local 说明 = ""
	local 备注 = "旭梦篇"
	local 进程 = 任务数据[任务id].进程

	if 进程 == 1 then
		说明 = "找到#G秋风的回忆"
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "秋风的回忆", 6040)
	elseif 进程 == 2 then
		说明 = "秋风会见到何人呢?\n继续找#G秋风,观看回忆"
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "秋风的回忆", 6040)
	elseif 进程 == 3 then
		说明 = "继续观看秋风的回忆\n去找#G秋风#吧"
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "秋风的回忆", 6040)
	elseif 进程 == 4 then
		说明 = "转眼十年过去了\n继续找#G秋风"
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "秋风的回忆", 6040)
	elseif 进程 == 5 then
		说明 = "跟着秋风的回忆\n在天宫游玩一番\n去找#G太白金星#触发剧情"
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "太白金星", 6040)
	elseif 进程 == 6 then
		说明 = "跟着秋风的回忆\n去#G兜率宫#看看"
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "太上老君", 6041)
	elseif 进程 == 7 then
		说明 = "你化为了秋风的回忆\n去和#G三清#切磋"
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "三清", 6041)
	elseif 进程 == 8 then
		说明 = "回去将仙丹给#G太白金星"
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "太白金星", 6040)
	elseif 进程 == 9 then
		说明 = "继续对话#G太白金星\n看过场动画"
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "太白金星", 6040)
	elseif 进程 == 10 then
		说明 = "秋风被押往了灵霄殿\n去找#G玉帝问问"
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "玉皇大帝", 6042)
	end

	return {
		名称,
		说明,
		备注,
		坐标 = self.快捷坐标
	}
end

function 任务处理类:取梦战第二章(id, 任务id)
	local 名称 = "旭梦篇"
	local 说明 = ""
	local 备注 = "旭梦篇"
	local 进程 = 任务数据[任务id].进程

	if 进程 == 1 then
		说明 = "秋风在建邺城瞎逛\n想找点事做,历练历练\n听闻#G张捕头#那里缺人手"
	elseif 进程 == 2 then
		说明 = "在城里找找,#G江南小盗\n帮张捕头抓住小偷"
	elseif 进程 == 3 then
		说明 = "回到#G张捕头处\n进行下一步"
	elseif 进程 == 4 then
		说明 = "去找#G宠物仙子\n问个缘由"
	elseif 进程 == 5 then
		说明 = "去#G东海湾#逛逛\n熟悉熟悉召唤兽"
	elseif 进程 == 6 then
		说明 = "和#G大大龟#对话\n开启战斗"
	elseif 进程 == 7 then
		说明 = "继续和#G大大龟#对话\n了解情况"
	elseif 进程 == 8 then
		说明 = "去海底岩洞找#G绿皮蛙"
	elseif 进程 == 9 then
		说明 = "和#G绿皮蛙#对话\n开启战斗"
	elseif 进程 == 10 then
		说明 = "继续和#G绿皮蛙#对话\n了解情况"
	elseif 进程 == 11 then
		说明 = "去#G东海海底#寻找一番\n看有没有强盗的下落"
	elseif 进程 == 12 then
		说明 = "和#G屈原#对话\n开启战斗"
	elseif 进程 == 13 then
		说明 = "继续和#G屈原#对话\n了解情况"
	elseif 进程 == 14 then
		说明 = "寻找#G狂盗#的下落"
	elseif 进程 == 15 then
		说明 = "天色已晚,先回#G建邺城#吧"
	elseif 进程 == 16 then
		说明 = "在建邺城中寻找#Y黄狮王"
	elseif 进程 == 17 then
		说明 = "和#G黄狮王#对话\n开启战斗\n(#G必败放轻松#)"
	elseif 进程 == 18 then
		说明 = "继续和#G黄狮王#对话\n了解情况"
	elseif 进程 == 19 then
		说明 = "去找#G宠物仙子#\n领取召唤兽"
	end

	return {
		名称,
		说明,
		备注,
		坐标 = self.快捷坐标
	}
end

function 任务处理类:取梦战第三章(id, 任务id)
	local 名称 = "旭梦篇"
	local 说明 = ""
	local 备注 = "旭梦篇"
	local 进程 = 任务数据[任务id].进程

	if 进程 == 1 then
		说明 = [[
秋风为了加入龙宫门派
需要教训一下#G马全有
他都快吧东海湾的
#G海毛虫#给抓光了]]
	elseif 进程 == 2 then
		说明 = [[
你已经打败了马全有
第二场测试
需要你去#G东海湾
解决#Y海盗头子]]
	elseif 进程 == 3 then
		说明 = "回到#G哥哥快处\n进行下一步"
	elseif 进程 == 4 then
		说明 = "去找#G老孙头\n打听#Y寒夕#下落"
	elseif 进程 == 5 then
		说明 = "去到寒夕#G相遇的最初地方#\n找到#Y寒夕"
	elseif 进程 == 6 then
		说明 = "和#G寒夕#对话\n开启战斗"
	elseif 进程 == 7 then
		说明 = "继续和#G寒夕#对话\n进行告别"
	end

	return {
		名称,
		说明,
		备注,
		坐标 = self.快捷坐标
	}
end

function 任务处理类:取梦战第四章(id, 任务id)
	local 名称 = "旭梦篇"
	local 说明 = ""
	local 备注 = "旭梦篇"
	local 进程 = 任务数据[任务id].进程

	if 进程 == 1 then
		说明 = "继续对话#G洛树妖#触发战斗"
	elseif 进程 == 2 then
		说明 = "秋风初到#G长安城#\n他想去#Y武器店#买点装备"
	elseif 进程 == 3 then
		说明 = "去#G江州府附近\n查询一番"
	elseif 进程 == 4 then
		说明 = "去找#G赌徒喽啰\n触发战斗"
	elseif 进程 == 5 then
		说明 = "把强盗之事告诉\n江州府衙门的知府"
	elseif 进程 == 6 then
		说明 = "和#G江州县令#对话\n开启战斗"
	elseif 进程 == 7 then
		说明 = "继续和#G江州县令#对话\n触发剧情"
	elseif 进程 == 8 then
		说明 = "去江州明房外找#G江洋大盗#的踪迹"
	elseif 进程 == 9 then
		说明 = "和#G江洋大盗#对话\n开启战斗"
	elseif 进程 == 10 then
		说明 = "原来幕后是\n#G洛川鬼#在指使江洋大盗\n去#Y地府门口#拦截洛川鬼"
	elseif 进程 == 11 then
		说明 = "和#G洛川鬼#对话\n开启战斗"
	elseif 进程 == 12 then
		说明 = "继续和#G洛川鬼#对话\n触发剧情"
	elseif 进程 == 13 then
		说明 = [[
你打败了洛川鬼
准备和秋风花飞
一起去#Y长安城#游玩一番
到#G大雁塔#寻找狂盗]]
	elseif 进程 == 14 then
		说明 = "继续和#G妩媚狐仙#对话\n开启战斗"
	elseif 进程 == 15 then
		说明 = "继续爬塔\n#Y前往2层"
	elseif 进程 == 16 then
		说明 = "继续爬塔\n#Y前往3层"
	elseif 进程 == 17 then
		说明 = "继续和#G半阁守将#对话\n开启战斗"
	elseif 进程 == 18 then
		说明 = "继续和#G半阁守将#对话\n触发剧情"
	elseif 进程 == 19 then
		说明 = "继续爬塔\n#Y前往4层"
	elseif 进程 == 20 then
		说明 = "最后一关了\n#Y前往6层\n找到#G大雁塔塔主"
	elseif 进程 == 21 then
		说明 = "前往大雁塔塔顶\n#Y找到狂盗"
	end

	return {
		名称,
		说明,
		备注,
		坐标 = self.快捷坐标
	}
end

function 任务处理类:取梦战第五章(id, 任务id)
	local 名称 = "旭梦篇"
	local 说明 = ""
	local 备注 = "旭梦篇"
	local 进程 = 任务数据[任务id].进程

	if 进程 == 1 then
		说明 = "继续对话#G空慈方丈#触发战斗"
	elseif 进程 == 2 then
		说明 = "帮助秋风回到女儿村\n先去#Y傲来国酒店#打听一下情况"
	elseif 进程 == 3 then
		说明 = "继续对话#G王福来#触发战斗"
	elseif 进程 == 4 then
		说明 = "继续对话#G王福来#触发剧情"
	elseif 进程 == 5 then
		说明 = "击败外面的#G蓝火兽#"
	elseif 进程 == 6 then
		说明 = "击败外面的#G吸血蝙蝠#\n自己找一下"
	elseif 进程 == 7 then
		说明 = "击败外面的#肾宝狼#\n自己找一下"
	elseif 进程 == 8 then
		说明 = "去江州明房外找#G江洋大盗#的踪迹"
	elseif 进程 == 9 then
		说明 = "和#G江洋大盗#对话\n开启战斗"
	elseif 进程 == 10 then
		说明 = "原来幕后是\n#G洛川鬼#在指使江洋大盗\n去#Y地府门口#拦截洛川鬼"
	elseif 进程 == 11 then
		说明 = "和#G洛川鬼#对话\n开启战斗"
	elseif 进程 == 12 then
		说明 = "继续和#G洛川鬼#对话\n触发剧情"
	elseif 进程 == 13 then
		说明 = [[
你打败了洛川鬼
准备和秋风花飞
一起去#Y长安城#游玩一番
到#G大雁塔#寻找狂盗]]
	elseif 进程 == 14 then
		说明 = "继续和#G妩媚狐仙#对话\n开启战斗"
	elseif 进程 == 15 then
		说明 = "继续爬塔\n#Y前往2层"
	elseif 进程 == 16 then
		说明 = "继续爬塔\n#Y前往3层"
	elseif 进程 == 17 then
		说明 = "继续和#G半阁守将#对话\n开启战斗"
	elseif 进程 == 18 then
		说明 = "继续和#G半阁守将#对话\n触发剧情"
	elseif 进程 == 19 then
		说明 = "继续爬塔\n#Y前往4层"
	elseif 进程 == 20 then
		说明 = "最后一关了\n#Y前往6层\n找到#G大雁塔塔主"
	elseif 进程 == 21 then
		说明 = "前往大雁塔塔顶\n#Y找到狂盗"
	end

	return {
		名称,
		说明,
		备注,
		坐标 = self.快捷坐标
	}
end

function 任务处理类:取玄奘身世(id, 任务id)
	local 名称 = "玄奘的身世"
	local 说明 = ""
	local 备注 = "第三章节，身世之谜"
	local 进程 = 任务数据[任务id].进程

	if 进程 == 1 then
		说明 = [[
#Y南极仙翁#最近似乎
在寻找着什么!
去完成,你可以先:
#S拜师,#Y刷塔,#G练练宝宝,#R升升级
该剧情建议#S25级]]
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "南极仙翁", 1070)
	elseif 进程 == 2 then
		说明 = "去#G大唐境外#找一只#Y小白鹿\n找到后将它带回给#R南极仙翁\n#S(需进行战斗)"
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "白鹿精", nil, "大唐境外")
	elseif 进程 == 3 then
		说明 = [[
#Y白鹿精#已经被你
成功收服了
现在快将它带回给
#G南极仙翁#吧]]
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "南极仙翁", 1070)
	elseif 进程 == 4 then
		说明 = [[
只能自认倒霉
#Y南极仙翁#让你去
找#G百色花#来给他的鹿儿医治
这个药品应该有些
#S药店#会有卖]]
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "南极仙翁", 1070)
	elseif 进程 == 5 then
		说明 = [[
事情告一段落
南极仙翁叫你去
去大唐国境的
#Y金山寺#找一个叫
#G玄奘#的法师
了解他的#S身世之谜
他会带你踏上
#G西行取经#之旅
(#S建议等级30级#)]]
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "玄奘", 1153)
	elseif 进程 == 6 then
		说明 = [[
身为出家人
#Y居然品行低劣#
嘲笑#G玄奘法师#的身世
这种疯和尚应该
#S教训一番
#Y(需进行战斗)]]
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "酒肉和尚", 1153)
	elseif 进程 == 7 then
		说明 = [[
经过一番战斗
你终于教训了那该死的
#Y酒肉和尚#,一旁的#G玄奘
表示这样打打杀杀不好
他有话给你说,去#S找他问问]]
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "玄奘", 1153)
	elseif 进程 == 8 then
		说明 = [[
想要了解#G玄奘的身世
你得前往#Y化生寺#跑一趟了
找到#S法明长老
他或许知道些什么]]
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "法明长老", 1528)
	elseif 进程 == 9 then
		说明 = [[
你有些灰头土脸的
没想到一来就吃了#G闭门羹
你决定#S找个人问问
看有没有办法尽快
治好#G法明长老#的伤势
#R门口#那个#Y小胖和尚#挺好的]]
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "慧海", nil, "化生寺")
	elseif 进程 == 10 then
		说明 = [[
为了治好#G法明长老#的伤势
你需要前往#Y花果山
找到#S猴医仙
让它给你制作#R定神香]]
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "猴医仙", nil, "花果山")
	elseif 进程 == 11 then
		说明 = [[
猴医仙叫你去找
#G餐风饮露#给他
只有这样他才能
制作出#R定神香
你可以去#Y药店#
看看有卖得没]]
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "猴医仙", nil, "花果山")
	elseif 进程 == 12 then
		说明 = [[
你已成功拿到
#G定神香#赶紧
回到#Y化生寺
把它交给#S法明长老#吧!]]
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "法明长老", 1528)
	elseif 进程 == 13 then
		说明 = [[
为了找回#G化生寺
#被白琉璃盗取的
#Y佛光舍利子
法明长老叫你去#S天宫#问问这
#G白琉璃#的来历
#R(需进行战斗)]]
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "执法天兵", nil, "天宫")
	elseif 进程 == 14 then
		说明 = [[
你从执法天兵话中
得知了#S白琉璃#的由来
也打听到她现在的下落
是时候去#Y大唐国境
找她归还#G佛光舍利#了]]
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "白琉璃", nil, "大唐国境")
	elseif 进程 == 15 then
		说明 = [[
白琉璃已经将
#Y佛光舍利#交还给你了
听了她的诉说
发现她其实也是
一个#G可怜之人
回#S化生寺#吧
把东西还给#R法明长老]]
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "法明长老", 1528)
	elseif 进程 == 16 then
		说明 = [[
你已拿到玄奘法师的
#Y身世证明
#R血书#一份
去#G金山寺#交于他吧
#S该任务无需道具
#Y直接找人就行]]
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "玄奘", 1153)
	elseif 进程 == 17 then
		说明 = [[
玄奘法师#G神志有点不清
去问问旁边的#Y酒肉和尚
到底是怎么回事儿!
#R(需进行战斗)]]
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "酒肉和尚", 1153)
	elseif 进程 == 18 then
		说明 = [[
这该死的#Y酒肉和尚
居然没有#G解药#,看来得
去一趟#S普陀山#求取
#R九转回魂丹#了]]
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "青莲仙女", nil, "潮音洞")
	elseif 进程 == 19 then
		说明 = [[
你得知想要#G解毒
还得需要#S孟婆汤#
一起服用才行
看来得去#R地府#走一趟了
#Y找到孟婆]]
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "孟婆", nil, "阴曹地府")
	elseif 进程 == 20 then
		说明 = [[
孟婆暂时还不能把汤给你
你得去找到#G幽冥鬼
进行一番超度后
才能获得#Y孟婆汤
(#G需要等级到达40级#)]]
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "幽冥鬼", nil, "地狱迷宫一层")
	elseif 进程 == 21 then
		说明 = [[
#Y幽冥鬼#不想转世的
原因是还未惦记着一人
为了帮他完成心愿
你得去#S大唐国境#找一个
叫#G文秀#的女孩]]
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "文秀", nil, "大唐国境")
	elseif 进程 == 22 then
		说明 = [[
#Y了解了凡尘俗世后
文秀让你把他的
#G信物#带给
#Y幽冥鬼#
#S该任务无需道具
#Y直接找人就行]]
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "幽冥鬼", nil, "地狱迷宫一层")
	elseif 进程 == 23 then
		说明 = [[
#Y幽冥鬼#终于看破红尘
准备轮回投胎了
你也得回去找#G孟婆#
兑现她的承诺了]]
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "孟婆", nil, "阴曹地府")
	elseif 进程 == 24 then
		说明 = [[
现在#Y孟婆汤#和
#G九转回魂丹#都齐了
回到金山寺
快去给玄奘#S解毒#吧
#R该任务只需要提交
#G九转回魂丹#即可]]
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "玄奘", 1153)
	elseif 进程 == 25 then
		说明 = [[
原来#Y玄奘的身世#中
藏着这样的#R深仇大恨
你自告奋勇
决定帮玄奘法师#S复仇
去#G大唐国境
#看能不能找到#Y殷温娇]]
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "衙役", nil, "大唐国境")
	elseif 进程 == 26 then
		说明 = [[
想要进入江州府
找到#Y殷温娇#
你的取得衙役的信任才行
所以去留香阁
帮衙役搞来#G小桃红#的东西
作为#S信物#骗取他的信任]]
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "小桃红", nil, "留香阁")
	elseif 进程 == 27 then
		说明 = [[
快跑吧
#Y老鸨#已经叫人来打你了
回#S大唐国境
把你顺到的#G手帕
交给#R衙役
#S该任务无需道具
#Y直接找人就行]]
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "衙役", nil, "大唐国境")
	elseif 进程 == 28 then
		说明 = "你进入了#Y江州府\n赶紧去找#G殷温娇#吧"
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "殷温娇", nil, "江州府")
	elseif 进程 == 29 then
		说明 = [[
听了#G殷温娇#
十八年前的#Y往事
你得找个#S水族的家伙#问问
当年的#R陈光蕊#
是否被水族所救]]
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "虾兵", nil, "大唐国境")
	elseif 进程 == 30 then
		说明 = [[
这个虾兵并
不了解当年之事
你得照着他说的那样
先去山神哪里拿到#S避水珠
方可进入#G龙宫]]
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "山神", nil, "大唐国境")
	elseif 进程 == 31 then
		说明 = [[
给山神找来
#G特别的美食
和他换取#S避水珠
这样才可以进入#Y龙宫]]
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "山神", nil, "大唐国境")
	elseif 进程 == 32 then
		说明 = [[
你已经拿到了#S避水珠
快前往#G龙宫#继续帮
殷温娇问问#Y光蕊之事#吧
#R(需进行战斗)]]
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "蟹将军", nil, "龙宫")
	elseif 进程 == 33 then
		说明 = "他妈的,又被人#G错打一顿\n算了算了,还是去找#Y龟千岁\n办#S正事#儿吧"
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "龟千岁", nil, "龙宫")
	elseif 进程 == 34 then
		说明 = [[
原来#Y陈光蕊#还活着
虽然不知道去向
但也算一件欣慰之事
回江州府,跟#G殷温娇#交代一吧]]
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "殷温娇", nil, "江州府")
	elseif 进程 == 35 then
		说明 = "去国境#Y找个人问问\n看有没有#G殷温娇婆婆#的下落"
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "小二", nil, "大唐国境")
	elseif 进程 == 36 then
		说明 = [[
婆婆已经#S饿得没有力气了
我需要去给他找点#G食物
但我不知道她需要吃什么
什么东西能一下#Y吃饱#呢?]]
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "婆婆", nil, "大唐国境")
	elseif 进程 == 37 then
		说明 = "把婆婆带回给#G殷温娇#吧"
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "殷温娇", nil, "江州府")
	elseif 进程 == 38 then
		说明 = "将这封#G书信#带给\n#R长安城内#的#Y殷丞相"
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "殷丞相", 1049)
	elseif 进程 == 39 then
		说明 = [[
把此事通知#G魏征#大人
让他即刻出兵
讨伐贼人#Y刘洪
为朝廷出去祸害!]]
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "魏征", nil, "金銮殿")
	elseif 进程 == 40 then
		说明 = "魏征已经同意#R剿贼\n并且给你了#G一定的兵马\n助你斩杀#Y刘洪"
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "刘洪", nil, "江州府")
	elseif 进程 == 41 then
		说明 = [[
经过一番激战后
你现在得去追击
#Y真正的刘洪#了
快去#G大唐境外#看看吧!]]
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "刘洪", nil, "大唐境外")
	elseif 进程 == 42 then
		说明 = [[
这一系列事情
终于尘埃落定
回#Y金山寺
向#G玄奘法师
诉说这一切]]
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "玄奘", 1153)
	elseif 进程 == 43 then
		说明 = [[
你现在可以去
#S大唐境外
找到#G天兵飞剑
触发剧情战斗(#P等级>=69#W)]]
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "天兵飞剑", nil, "大唐境外")
	end

	return {
		名称,
		说明,
		备注,
		坐标 = self.快捷坐标
	}
end

function 任务处理类:设置初入桃源村(id)
	if 玩家数据[id].角色:取任务(999) ~= 0 then
		添加最后对话(id, "你已经领取过该任务抓紧去完成吧！")

		return
	end

	local 任务id = id .. "_999_" .. os.time()
	local 结束时间 = 9999999
	任务数据[任务id] = {
		类型 = 999,
		进程 = 1,
		id = 任务id,
		起始 = os.time(),
		结束 = 结束时间,
		玩家id = id,
		队伍组 = {}
	}

	if 玩家数据[id].角色.数据.剧情.初入桃源村 ~= nil and 玩家数据[id].角色.数据.剧情.初入桃源村 ~= true then
		任务数据[任务id].进程 = tonumber(玩家数据[id].角色.数据.剧情.初入桃源村)
	else
		玩家数据[id].角色.数据.剧情.初入桃源村 = 1
	end

	玩家数据[id].角色:添加任务(任务id)
	发送数据(玩家数据[id].连接id, 39)
end

function 任务处理类:设置商人的鬼魂(id)
	玩家数据[id].角色.数据.剧情.初入桃源村 = true

	if 玩家数据[id].角色:取任务(998) ~= 0 then
		添加最后对话(id, "你已经领取过该任务抓紧去完成吧！")

		return
	end

	local 任务id = id .. "_998_" .. os.time()
	local 结束时间 = 9999999
	任务数据[任务id] = {
		类型 = 998,
		进程 = 1,
		id = 任务id,
		起始 = os.time(),
		结束 = 结束时间,
		玩家id = id,
		队伍组 = {}
	}

	if 玩家数据[id].角色.数据.剧情.商人的鬼魂 ~= nil and 玩家数据[id].角色.数据.剧情.商人的鬼魂 ~= true then
		任务数据[任务id].进程 = tonumber(玩家数据[id].角色.数据.剧情.商人的鬼魂)
	else
		玩家数据[id].角色:添加经验(30000, "剧情", 1)
		玩家数据[id].角色:添加储备(50000, "不加倍", 1)

		玩家数据[id].角色.数据.剧情.商人的鬼魂 = 1
	end

	玩家数据[id].角色:添加任务(任务id)
	发送数据(玩家数据[id].连接id, 39)
end

function 任务处理类:设置妖风支线(id)
	if 玩家数据[id].角色:取任务(898) ~= 0 then
		添加最后对话(id, "你已经领取过该任务抓紧去完成吧！")

		return
	end

	local 任务id = id .. "_898_" .. os.time()
	local 结束时间 = 9999999
	任务数据[任务id] = {
		类型 = 898,
		进程 = 1,
		id = 任务id,
		起始 = os.time(),
		结束 = 结束时间,
		玩家id = id,
		队伍组 = {}
	}

	玩家数据[id].角色:添加任务(任务id)
	发送数据(玩家数据[id].连接id, 39)
end

function 任务处理类:设置新枯萎金莲支线(id)
	if 玩家数据[id].角色:取任务(400) ~= 0 then
		添加最后对话(id, "你已经领取过该任务抓紧去完成吧！")

		return
	end

	local 任务id = id .. "_400_" .. os.time()
	local 结束时间 = 9999999
	任务数据[任务id] = {
		类型 = 400,
		进程 = 1,
		id = 任务id,
		起始 = os.time(),
		结束 = 结束时间,
		玩家id = id,
		队伍组 = {}
	}

	玩家数据[id].角色:添加任务(任务id)
	发送数据(玩家数据[id].连接id, 39)
end

function 任务处理类:设置桃园浣熊支线(id)
	if 玩家数据[id].角色:取任务(401) ~= 0 then
		添加最后对话(id, "你已经领取过该任务抓紧去完成吧！")

		return
	end

	local 任务id = id .. "_401_" .. os.time()
	local 结束时间 = 9999999
	任务数据[任务id] = {
		类型 = 401,
		进程 = 1,
		id = 任务id,
		起始 = os.time(),
		结束 = 结束时间,
		玩家id = id,
		队伍组 = {}
	}

	玩家数据[id].角色:添加任务(任务id)
	发送数据(玩家数据[id].连接id, 39)
end

function 任务处理类:设置新手指引任务(id)
	if 玩家数据[id].角色:取任务(402) ~= 0 then
		添加最后对话(id, "你已经领取过该任务抓紧去完成吧！")

		return
	end

	local 任务id = id .. "_402_" .. os.time()
	local 结束时间 = 9999999
	任务数据[任务id] = {
		类型 = 402,
		进程 = 1,
		id = 任务id,
		起始 = os.time(),
		结束 = 结束时间,
		玩家id = id,
		队伍组 = {}
	}

	玩家数据[id].角色:添加任务(任务id)
	发送数据(玩家数据[id].连接id, 39)
end

function 任务处理类:设置梦战第一章(id)
	if 玩家数据[id].角色:取任务(500) ~= 0 then
		添加最后对话(id, "你已经领取过该任务抓紧去完成吧！")

		return
	end

	local 任务id = id .. "_500_" .. os.time()
	local 结束时间 = 9999999
	任务数据[任务id] = {
		类型 = 500,
		进程 = 1,
		id = 任务id,
		起始 = os.time(),
		结束 = 结束时间,
		玩家id = id,
		队伍组 = {}
	}

	玩家数据[id].角色:添加任务(任务id)
	发送数据(玩家数据[id].连接id, 39)
end

function 任务处理类:设置梦战第二章(id)
	if 玩家数据[id].角色:取任务(501) ~= 0 then
		添加最后对话(id, "你已经领取过该任务抓紧去完成吧！")

		return
	end

	local 任务id = id .. "_501_" .. os.time()
	local 结束时间 = 9999999
	任务数据[任务id] = {
		类型 = 501,
		进程 = 1,
		id = 任务id,
		起始 = os.time(),
		结束 = 结束时间,
		玩家id = id,
		队伍组 = {}
	}

	玩家数据[id].角色:添加任务(任务id)
	发送数据(玩家数据[id].连接id, 39)
end

function 任务处理类:设置梦战第三章(id)
	if 玩家数据[id].角色:取任务(502) ~= 0 then
		添加最后对话(id, "你已经领取过该任务抓紧去完成吧！")

		return
	end

	local 任务id = id .. "_502_" .. os.time()
	local 结束时间 = 9999999
	任务数据[任务id] = {
		类型 = 502,
		进程 = 1,
		id = 任务id,
		起始 = os.time(),
		结束 = 结束时间,
		玩家id = id,
		队伍组 = {}
	}

	玩家数据[id].角色:添加任务(任务id)
	发送数据(玩家数据[id].连接id, 39)
end

function 任务处理类:设置梦战第四章(id)
	if 玩家数据[id].角色:取任务(503) ~= 0 then
		添加最后对话(id, "你已经领取过该任务抓紧去完成吧！")

		return
	end

	local 任务id = id .. "_503_" .. os.time()
	local 结束时间 = 9999999
	任务数据[任务id] = {
		类型 = 503,
		进程 = 1,
		id = 任务id,
		起始 = os.time(),
		结束 = 结束时间,
		玩家id = id,
		队伍组 = {}
	}

	玩家数据[id].角色:添加任务(任务id)
	发送数据(玩家数据[id].连接id, 39)
end

function 任务处理类:设置梦战第五章(id)
	if 玩家数据[id].角色:取任务(504) ~= 0 then
		添加最后对话(id, "你已经领取过该任务抓紧去完成吧！")

		return
	end

	local 任务id = id .. "_504_" .. os.time()
	local 结束时间 = 9999999
	任务数据[任务id] = {
		类型 = 504,
		进程 = 1,
		id = 任务id,
		起始 = os.time(),
		结束 = 结束时间,
		玩家id = id,
		队伍组 = {}
	}

	玩家数据[id].角色:添加任务(任务id)
	发送数据(玩家数据[id].连接id, 39)
end

function 任务处理类:设置玄奘的身世(id)
	玩家数据[id].角色.数据.剧情.商人的鬼魂 = true

	if 玩家数据[id].角色:取任务(997) ~= 0 then
		添加最后对话(id, "你已经领取过该任务抓紧去完成吧！")

		return
	end

	local 任务id = id .. "_997_" .. os.time()
	local 结束时间 = 9999999
	任务数据[任务id] = {
		类型 = 997,
		进程 = 1,
		id = 任务id,
		起始 = os.time(),
		结束 = 结束时间,
		玩家id = id,
		队伍组 = {}
	}

	if 玩家数据[id].角色.数据.剧情.玄奘的身世 ~= nil and 玩家数据[id].角色.数据.剧情.玄奘的身世 ~= true then
		任务数据[任务id].进程 = tonumber(玩家数据[id].角色.数据.剧情.玄奘的身世)
	else
		玩家数据[id].角色:添加经验(100000, "剧情", 1)
		玩家数据[id].角色:添加储备(150000, "不加倍", 1)

		玩家数据[id].角色.数据.剧情.玄奘的身世 = 1
	end

	玩家数据[id].角色:添加任务(任务id)
	发送数据(玩家数据[id].连接id, 39)
end

function 任务处理类:大战心魔(id, 任务id)
	local 名称 = "大战心魔"
	local 说明 = ""
	local 备注 = "第四章节 大战心魔"
	local 进程 = 任务数据[任务id].进程

	if 进程 == 1 then
		说明 = "找到#R天兵飞剑#开启战斗"
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "天兵飞剑", nil, "大唐境外")
	elseif 进程 == 2 then
		说明 = "搞定了天兵,看看#G卷帘大将#有什么苦衷"
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "卷帘大将", nil, "大唐境外")
	elseif 进程 == 3 then
		说明 = "一场激战后,卷帘大将身上散落一串念珠,大将的神色忽然大变,赶紧问问他怎么回事?"
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "卷帘大将", nil, "大唐境外")
	elseif 进程 == 4 then
		说明 = "向长安城的#G袁守城#请教阵法之理,不然无法击败卷帘大将的心魔"
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "袁守城", 1001)
	elseif 进程 == 5 then
		说明 = "去#G五庄观#找到#Y清风\n询问#S天心星#的下落"
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "清风", nil, "五庄观")
	elseif 进程 == 6 then
		说明 = "去#G普陀山#找到#Y青莲仙女"
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "青莲仙女", nil, "潮音洞")
	elseif 进程 == 7 then
		说明 = "帮#Y青莲仙女#找到#Y火凤之睛\n并交予她"
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "青莲仙女", nil, "潮音洞")
	elseif 进程 == 8 then
		说明 = "回到#Y清风#那里将#Y仙露\n并交予他"
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "清风", nil, "五庄观")
	elseif 进程 == 9 then
		说明 = "去#Y长寿郊外#找到#G路人甲"
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "路人甲", nil, "长寿郊外")
	elseif 进程 == 10 then
		说明 = "你已获得天心星\n去#G天宫#找#Y水兵统领#\n询问#S天英星#的下落"
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "水兵统领", nil, "天宫")
	elseif 进程 == 11 then
		说明 = "去地府找到#G判官#询问情况"
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "判官", nil, "森罗殿")
	elseif 进程 == 12 then
		说明 = "去天宫找到#G杨戬#询问情况"
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "杨戬", 1112)
	elseif 进程 == 13 then
		说明 = "你已经获得#G天英星\n袁守城被龙族所困扰\n找到#Y龙孙#解决他"
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "龙孙", 1001)
	elseif 进程 == 14 then
		说明 = "找#G袁守城#触发剧情"
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "袁守城", 1001)
	elseif 进程 == 15 then
		说明 = "找#G卷帘大将#触发战斗"
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "卷帘大将", nil, "大唐境外")
	end

	return {
		名称,
		说明,
		备注,
		坐标 = self.快捷坐标
	}
end

function 任务处理类:设置大战心魔(id)
	玩家数据[id].角色.数据.剧情.玄奘的身世 = true

	if 成就数据[id].大战心魔 == nil then
		成就数据[id].大战心魔 = 0
	end

	if 玩家数据[id].角色:取任务(996) ~= 0 then
		添加最后对话(id, "你已经领取过该任务抓紧去完成吧！")

		return
	elseif 成就数据[id].大战心魔 ~= nil and 成就数据[id].大战心魔 == 1 then
		添加最后对话(id, "你已经完成了该任务了")

		return
	end

	local 任务id = id .. "_996_" .. os.time()
	local 结束时间 = 1e+17
	任务数据[任务id] = {
		类型 = 996,
		进程 = 1,
		id = 任务id,
		起始 = os.time(),
		结束 = 结束时间,
		玩家id = id,
		队伍组 = {}
	}

	if 玩家数据[id].角色.数据.剧情.大战心魔 ~= nil and 玩家数据[id].角色.数据.剧情.大战心魔 ~= true then
		任务数据[任务id].进程 = tonumber(玩家数据[id].角色.数据.剧情.大战心魔)
	else
		玩家数据[id].角色:添加经验(300000, "剧情", 1)
		玩家数据[id].角色:添加储备(500000, "不加倍", 1)

		玩家数据[id].角色.数据.剧情.大战心魔 = 1
	end

	玩家数据[id].角色:添加任务(任务id)
	发送数据(玩家数据[id].连接id, 39)
end

function 任务处理类:设置含冤小白龙(id)
	玩家数据[id].角色.数据.剧情.大战心魔 = true

	if 成就数据[id].含冤小白龙 == nil then
		成就数据[id].含冤小白龙 = 0
	end

	if 玩家数据[id].角色:取任务(995) ~= 0 then
		添加最后对话(id, "你已经领取过该任务抓紧去完成吧！")

		return
	elseif 成就数据[id].含冤小白龙 ~= nil and 成就数据[id].含冤小白龙 == 1 then
		添加最后对话(id, "你已经完成了该任务了")

		return
	end

	local 任务id = id .. "_995_" .. os.time()
	local 结束时间 = 1e+17
	任务数据[任务id] = {
		类型 = 995,
		进程 = 1,
		id = 任务id,
		起始 = os.time(),
		结束 = 结束时间,
		玩家id = id,
		队伍组 = {}
	}

	if 玩家数据[id].角色.数据.剧情.含冤小白龙 ~= nil and 玩家数据[id].角色.数据.剧情.含冤小白龙 ~= true then
		任务数据[任务id].进程 = tonumber(玩家数据[id].角色.数据.剧情.含冤小白龙)
	else
		玩家数据[id].角色:添加经验(1000000, "剧情", 1)
		玩家数据[id].角色:添加储备(1500000, "不加倍", 1)

		玩家数据[id].角色.数据.剧情.含冤小白龙 = 1
	end

	玩家数据[id].角色:添加任务(任务id)
	发送数据(玩家数据[id].连接id, 39)
end

function 任务处理类:含冤小白龙(id, 任务id)
	local 名称 = "含冤小白龙"
	local 说明 = ""
	local 备注 = "第五章节 含冤小白龙"
	local 进程 = 任务数据[任务id].进程

	if 进程 == 1 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "大力神灵", nil, "天宫")
		说明 = format("在天宫的#Y大力神灵#R(%s,%s)#W处领取#S“含冤的小白龙”#W剧情任务。", self.快捷坐标.X, self.快捷坐标.Y)
	elseif 进程 == 2 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "毛驴张", nil, "长寿村")
		说明 = format("白痴大力神灵的玄天铁鞭丢了，去#G长寿村#W找进来得到一条好鞭子的#Y毛驴张#R(%s,%s)#W问问。", self.快捷坐标.X, self.快捷坐标.Y)
	elseif 进程 == 3 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "毛驴张", nil, "长寿村")
		说明 = format("帮#G长寿村#W的#Y毛驴张#R(%s,%s)#W买来#G桂花丸#W。", self.快捷坐标.X, self.快捷坐标.Y)
	elseif 进程 == 4 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "大力神灵", nil, "天宫")
		说明 = format("将#Y/玄天铁鞭#W交给#G天宫#W的大力神灵#R(%s,%s)#W。", self.快捷坐标.X, self.快捷坐标.Y)
	elseif 进程 == 5 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "天牢守卫", nil, "天宫")
		说明 = format("可怜的小白龙犯了死罪被关进天牢，去#G天宫#W的#Y天牢守卫#R(%s,%s)#W疏通疏通看能不能探视下小白龙。", self.快捷坐标.X, self.快捷坐标.Y)
	elseif 进程 == 6 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "小白龙", nil, "海底迷宫五层")
		说明 = format("#Y小白龙#W越狱了？料想他定是逃去了海底迷宫五层了。")
	elseif 进程 == 7 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "镇塔之神", nil, "大雁塔七层")
		说明 = format("把信物交给#G大雁塔七层#W的#Y镇塔之神#R(%s,%s)#W。", self.快捷坐标.X, self.快捷坐标.Y)
	elseif 进程 == 8 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "梦之魅", nil, "大雁塔二层")
		说明 = format("帮忙在塔内巡逻，搞定二楼的#Y梦之魅#R(%s,%s)#W。", self.快捷坐标.X, self.快捷坐标.Y)
	elseif 进程 == 9 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "血之魅", nil, "大雁塔四层")
		说明 = format("帮忙在塔内巡逻，搞定四楼的#Y血之魅#R(%s,%s)#W。", self.快捷坐标.X, self.快捷坐标.Y)
	elseif 进程 == 10 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "森之魅", nil, "大雁塔五层")
		说明 = format("帮忙在塔内巡逻，搞定五楼的#Y森之魅#R(%s,%s)#W。", self.快捷坐标.X, self.快捷坐标.Y)
	elseif 进程 == 11 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "镇塔之神", nil, "大雁塔七层")
		说明 = format("回去找#G大雁塔七层#W的#Y镇塔之神#R(%s,%s)#W复命把。", self.快捷坐标.X, self.快捷坐标.Y)
	elseif 进程 == 12 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "奔波儿灞", nil, "大雁塔四层")
		说明 = format("赶走入侵大雁塔四层的#Y奔波儿灞#R(%s,%s)#W。", self.快捷坐标.X, self.快捷坐标.Y)
	elseif 进程 == 13 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "蟹将军", nil, "龙宫")
		说明 = format("万圣公主竟做出这种事？！先去找#G龙宫#W的#Y蟹将军#R(%s,%s)#W问个明白吧。", self.快捷坐标.X, self.快捷坐标.Y)
	elseif 进程 == 14 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "虾将军", nil, "龙宫")
		说明 = format("摆平了蟹将军，还有个#Y虾将军#R(%s,%s)#W做拦路虎！", self.快捷坐标.X, self.快捷坐标.Y)
	elseif 进程 == 15 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "万圣公主", nil, "龙宫")
		说明 = format("摆平了虾兵蟹将后，终于可以去找#Y万圣公主#R(%s,%s)#W了。", self.快捷坐标.X, self.快捷坐标.Y)
	elseif 进程 == 16 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "王母娘娘", nil, "凌霄宝殿")
		说明 = format("原来万圣公主受此冤屈，替他向#Y王母娘娘#R(%s,%s)#W索回龙须草。", self.快捷坐标.X, self.快捷坐标.Y)
	elseif 进程 == 17 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "万圣公主", nil, "龙宫")
		说明 = format("夺回了#Y龙须草#W可以交还给#Y万圣公主#R(%s,%s)#W了。", self.快捷坐标.X, self.快捷坐标.Y)
	elseif 进程 == 18 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "王母娘娘", nil, "凌霄宝殿")
		说明 = format("没想到被万圣公主骗了羞愧之余，还是把龙须草还给#Y王母娘娘#R(%s,%s)#W。", self.快捷坐标.X, self.快捷坐标.Y)
	elseif 进程 == 19 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "九头精怪", nil, "魔王寨")
		说明 = format("了却万圣公主一事，是时候去魔王寨找元凶#Y九头精怪#R(%s,%s)#W算账了。", self.快捷坐标.X, self.快捷坐标.Y)
	elseif 进程 == 20 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "九头精怪", nil, "魔王寨")
		说明 = format("打发掉牛魔王的亲兵，这下该轮到#Y九头精怪#R(%s,%s)#W了。", self.快捷坐标.X, self.快捷坐标.Y)
	elseif 进程 == 21 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "玉皇大帝", nil, "凌霄宝殿")
		说明 = format("九头精怪已经把镇塔之宝进贡给天庭了，赶紧找#Y玉皇大帝#R(%s,%s)#W索要回来。", self.快捷坐标.X, self.快捷坐标.Y)
	elseif 进程 == 22 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "青莲仙女", nil, "潮音洞")
		说明 = format("昏庸的玉帝就知道喊观音如来，还是亲自去普陀山找#Y青莲仙女#R(%s,%s)#W问个明白。", self.快捷坐标.X, self.快捷坐标.Y)
	elseif 进程 == 23 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "玉皇大帝", nil, "凌霄宝殿")
		说明 = format("拿着青莲仙女给予的紫竹折，前往天宫跟#Y玉皇大帝#R(%s,%s)#W问交换镇塔之宝吧。", self.快捷坐标.X, self.快捷坐标.Y)
	elseif 进程 == 24 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "镇塔之神", nil, "大雁塔七层")
		说明 = format("拿到镇塔之宝，返回大雁塔七层交还给#Y镇塔之神#R(%s,%s)#W。", self.快捷坐标.X, self.快捷坐标.Y)
	elseif 进程 == 25 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "小白龙", nil, "海底迷宫五层")
		说明 = format("将观音姐姐的信物碧水青龙带给小白龙，现在就去海底迷宫五层找#Y小白龙#R(%s,%s)#W吧。", self.快捷坐标.X, self.快捷坐标.Y)
	end

	任务数据[任务id].地图编号 = self.快捷坐标.地图编号
	任务数据[任务id].名称 = self.快捷坐标.名称
	玩家数据[id].角色.数据.当前剧情 = {
		任务 = "含冤小白龙",
		地图 = self.快捷坐标.地图编号,
		名称 = self.快捷坐标.名称,
		进程 = 进程
	}

	return {
		名称,
		说明,
		备注,
		坐标 = self.快捷坐标
	}
end

function 任务处理类:设置女娲神迹(id)
	玩家数据[id].角色.数据.剧情.含冤小白龙 = true

	if 成就数据[id].女娲神迹 == nil then
		成就数据[id].女娲神迹 = 0
	end

	if 玩家数据[id].角色:取任务(994) ~= 0 then
		添加最后对话(id, "你已经领取过该任务抓紧去完成吧！")

		return
	elseif 成就数据[id].女娲神迹 ~= nil and 成就数据[id].女娲神迹 == 1 then
		添加最后对话(id, "你已经完成了该任务了")

		return
	end

	local 任务id = id .. "_994_" .. os.time()
	local 结束时间 = 1e+17
	任务数据[任务id] = {
		类型 = 994,
		进程 = 1,
		id = 任务id,
		起始 = os.time(),
		结束 = 结束时间,
		玩家id = id,
		队伍组 = {}
	}

	if 玩家数据[id].角色.数据.剧情.女娲神迹 ~= nil and 玩家数据[id].角色.数据.剧情.女娲神迹 ~= true then
		任务数据[任务id].进程 = tonumber(玩家数据[id].角色.数据.剧情.女娲神迹)
	else
		玩家数据[id].角色:添加经验(3000000, "剧情", 1)
		玩家数据[id].角色:添加储备(4500000, "不加倍", 1)

		玩家数据[id].角色.数据.剧情.女娲神迹 = 1
	end

	玩家数据[id].角色:添加任务(任务id)
	发送数据(玩家数据[id].连接id, 39)
end

function 任务处理类:女娲神迹(id, 任务id)
	local 名称 = "女娲神迹"
	local 说明 = ""
	local 备注 = "第六章节 女娲神迹"
	local 进程 = 任务数据[任务id].进程

	if 进程 == 1 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "女娲神迹传送人", nil, "北俱芦洲")
		说明 = format("#S(冥冥之中的天意)#W待你强大以后去找#G北俱芦洲#W的#Y女娲神迹传送人#R(%s,%s)#W问一下身世之谜", self.快捷坐标.X, self.快捷坐标.Y)
	elseif 进程 == 2 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "美猴王", nil, "水帘洞")
		说明 = format("找#G水帘洞#W的#Y美猴王#R(%s,%s)#W解开这个谜团", self.快捷坐标.X, self.快捷坐标.Y)
	elseif 进程 == 3 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "美猴王", nil, "水帘洞")
		说明 = format("帮助#G水帘洞#W的#Y美猴王#R(%s,%s)#W找来一坛#R女儿红", self.快捷坐标.X, self.快捷坐标.Y)
	elseif 进程 == 4 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "女娲神迹传送人", nil, "北俱芦洲")
		说明 = format("找#G北俱芦洲#W的#Y女娲神迹传送人#R(%s,%s)#W在问一下事情的始末", self.快捷坐标.X, self.快捷坐标.Y)
	elseif 进程 == 5 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "小紫", nil, "傲来圣殿")
		说明 = format("找#G傲来圣殿#W的#Y小紫#R(%s,%s)#W了解下这件事情", self.快捷坐标.X, self.快捷坐标.Y)
	elseif 进程 == 6 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "女娲神迹传送人", nil, "北俱芦洲")
		说明 = format("将小紫姑娘的情况告诉#R女娲神迹传送人#R(%s,%s)", self.快捷坐标.X, self.快捷坐标.Y)
	elseif 进程 == 7 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "小紫", nil, "傲来圣殿")
		说明 = format("找到#R千年保心丹#W给#G傲来圣殿#W的#Y小紫#R(%s,%s)#W服下", self.快捷坐标.X, self.快捷坐标.Y)
	elseif 进程 == 8 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "美猴王", nil, "水帘洞")
		说明 = format("将小紫说的话告诉#G水帘洞#W的#Y美猴王#R(%s,%s)", self.快捷坐标.X, self.快捷坐标.Y)
	elseif 进程 == 9 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "春十三娘", nil, "盘丝洞")
		说明 = format("去盘丝岭打探下#Y春十三娘#R(%s,%s)#W的底细", self.快捷坐标.X, self.快捷坐标.Y)
	elseif 进程 == 10 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "小紫", nil, "傲来圣殿")
		说明 = format("告诉#Y小紫#R(%s,%s)#W敌人的情况", self.快捷坐标.X, self.快捷坐标.Y)
	end

	任务数据[任务id].地图编号 = self.快捷坐标.地图编号
	任务数据[任务id].名称 = self.快捷坐标.名称
	玩家数据[id].角色.数据.当前剧情 = {
		任务 = "女娲神迹",
		地图 = self.快捷坐标.地图编号,
		名称 = self.快捷坐标.名称,
		进程 = 进程
	}

	return {
		名称,
		说明,
		备注,
		坐标 = self.快捷坐标
	}
end

function 任务处理类:设置八戒悟空(id)
	玩家数据[id].角色.数据.剧情.女娲神迹 = true

	if 成就数据[id].八戒悟空 == nil then
		成就数据[id].八戒悟空 = 0
	end

	if 玩家数据[id].角色:取任务(993) ~= 0 then
		添加最后对话(id, "你已经领取过该任务抓紧去完成吧！")

		return
	elseif 成就数据[id].八戒悟空 ~= nil and 成就数据[id].八戒悟空 == 1 then
		添加最后对话(id, "你已经完成了该任务了")

		return
	end

	local 任务id = id .. "_993_" .. os.time()
	local 结束时间 = 1e+17
	任务数据[任务id] = {
		类型 = 993,
		进程 = 1,
		id = 任务id,
		起始 = os.time(),
		结束 = 结束时间,
		玩家id = id,
		队伍组 = {}
	}

	if 玩家数据[id].角色.数据.剧情.八戒悟空 ~= nil and 玩家数据[id].角色.数据.剧情.八戒悟空 ~= true then
		任务数据[任务id].进程 = tonumber(玩家数据[id].角色.数据.剧情.八戒悟空)
	else
		玩家数据[id].角色:添加经验(5000000, "剧情", 1)
		玩家数据[id].角色:添加储备(7500000, "不加倍", 1)

		玩家数据[id].角色.数据.剧情.八戒悟空 = 1
	end

	玩家数据[id].角色:添加任务(任务id)
	发送数据(玩家数据[id].连接id, 39)
end

function 任务处理类:八戒悟空(id, 任务id)
	local 名称 = "八戒悟空"
	local 说明 = ""
	local 备注 = "第七章节 八戒悟空"
	local 进程 = 任务数据[任务id].进程

	if 进程 == 1 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "月香侍女", nil, "月宫")
		说明 = format("在#G月宫#W的#Y月香侍女#R(%s,%s)#W处领取#R“八戒悟空”#W剧情任务。", self.快捷坐标.X, self.快捷坐标.Y)
	elseif 进程 == 2 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "康太尉", nil, "月宫")
		说明 = format("#G康太尉#R(%s,%s)#W这家伙竟来打扰嫦娥仙子清修，快打发他走！", self.快捷坐标.X, self.快捷坐标.Y)
	elseif 进程 == 3 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "月香侍女", nil, "月宫")
		说明 = format("打跑前来捣乱的康太尉，问问#Y月香侍女#R(%s,%s)#W究竟是为何事。", self.快捷坐标.X, self.快捷坐标.Y)
	elseif 进程 == 4 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "嫦娥", nil, "月宫")
		说明 = format("月香姑娘似乎难于开口，还是去问问#Y嫦娥仙子#R(%s,%s)#W吧。", self.快捷坐标.X, self.快捷坐标.Y)
	elseif 进程 == 5 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "卵二姐", nil, "江南野外")
		说明 = format("原来如此，但听说他在凡间也惹了不少感情债，去找#G江南野外#W的#Y卵二姐#R(%s,%s)#W问问。", self.快捷坐标.X, self.快捷坐标.Y)
	elseif 进程 == 6 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "罗纤纤", nil, "江南野外")
		说明 = format("听说#G江南野外#W的#Y罗纤纤#R(%s,%s)#W头上带的桃花特别娇艳，前去问问。", self.快捷坐标.X, self.快捷坐标.Y)
	elseif 进程 == 7 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "吴举人", 1026)
		说明 = format("帮罗纤纤探探长安国子监内#Y吴举人#R(%s,%s)#W的心意。", self.快捷坐标.X, self.快捷坐标.Y)
	elseif 进程 == 8 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "罗纤纤", nil, "江南野外")
		说明 = format("帮吴举人送花给#G江南野外#W的#Y罗纤纤#R(%s,%s)#W。", self.快捷坐标.X, self.快捷坐标.Y)
	elseif 进程 == 9 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "卵二姐", nil, "江南野外")
		说明 = format("撮合一对新人后，将#R桃花#W长安城杂货店#W拿去给#Y卵二姐#R(%s,%s)#W。", self.快捷坐标.X, self.快捷坐标.Y)
	elseif 进程 == 10 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "天蓬元帅", nil, "大唐境外")
		说明 = format("就帮卵二姐将#R桃花#W还给#Y天蓬元帅#R(%s,%s)#W。", self.快捷坐标.X, self.快捷坐标.Y)
	elseif 进程 == 11 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "高翠兰", nil, "高小姐闺房")
		说明 = format("无奈还是帮天蓬元帅去高家庄找#Y高翠兰#R(%s,%s)#W小姐退婚吧。", self.快捷坐标.X, self.快捷坐标.Y)
	elseif 进程 == 12 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "天蓬元帅", nil, "大唐境外")
		说明 = format("打退了高家抢亲的队伍，回去向#Y天蓬元帅#R(%s,%s)#W交差。", self.快捷坐标.X, self.快捷坐标.Y)
	elseif 进程 == 13 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "土地公公", nil, "大唐境外")
		说明 = format("得向#G大唐境外#W的#Y土地公公#R(%s,%s)#W打听盘丝岭的所在。", self.快捷坐标.X, self.快捷坐标.Y)
	elseif 进程 == 14 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "土地公公", nil, "大唐境外")
		说明 = format("付给土地咨询费。", self.快捷坐标.X, self.快捷坐标.Y)
	elseif 进程 == 15 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "冤魂", nil, "大唐境外")
		说明 = format("帮土地打退捣乱的#Y冤魂#R(%s,%s)#W。", self.快捷坐标.X, self.快捷坐标.Y)
	elseif 进程 == 16 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "土地公公", nil, "大唐境外")
		说明 = format("回去向#Y土地公公#R(%s,%s)#W打听情魔蛛丝之毒的秘密。", self.快捷坐标.X, self.快捷坐标.Y)
	elseif 进程 == 17 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "天蓬元帅", nil, "大唐境外")
		说明 = format("先去找#Y天蓬元帅#R(%s,%s)#W解除他和卵二姐之间的‘疚’之情。", self.快捷坐标.X, self.快捷坐标.Y)
	elseif 进程 == 18 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "卵二姐", nil, "江南野外")
		说明 = format("代替天蓬送#R桃花#Y卵二姐#R(%s,%s)#W请求她的原谅。", self.快捷坐标.X, self.快捷坐标.Y)
	elseif 进程 == 19 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "天蓬元帅", nil, "大唐境外")
		说明 = format("卵二姐原谅了天蓬，回去向#Y天蓬元帅#R(%s,%s)#W说明。", self.快捷坐标.X, self.快捷坐标.Y)
	elseif 进程 == 20 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "高翠兰", nil, "高小姐闺房")
		说明 = format("前往高老庄找#Y高翠兰#R(%s,%s)#W小姐，解除天蓬元帅的‘怖’之情。", self.快捷坐标.X, self.快捷坐标.Y)
	elseif 进程 == 21 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "高老先生", nil, "高老庄大厅")
		说明 = format("高翠兰小姐净是胡，还是找她爹爹#Y高老先生#R(%s,%s)#W说个明白吧。", self.快捷坐标.X, self.快捷坐标.Y)
	elseif 进程 == 22 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "红线童子", 1001)
		说明 = format("快去长安找#Y红线童子#R(%s,%s)#W问问。", self.快捷坐标.X, self.快捷坐标.Y)
	elseif 进程 == 23 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "绿儿", nil, "女儿村")
		说明 = format("这红线童子好生胡闹去找#G女儿村#W的#Y绿儿#R(%s,%s)#W要回木偶。", self.快捷坐标.X, self.快捷坐标.Y)
	elseif 进程 == 24 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "红线童子", 1001)
		说明 = format("终于换回张小二的木偶了，快拿去给#Y红线童子#R(%s,%s)#W吧。", self.快捷坐标.X, self.快捷坐标.Y)
	elseif 进程 == 25 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "高翠兰", nil, "高小姐闺房")
		说明 = format("终于牵对了红线，回高家庄看看#Y高翠兰#R(%s,%s)#W小姐现在怎样。", self.快捷坐标.X, self.快捷坐标.Y)
	elseif 进程 == 26 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "天蓬元帅", nil, "大唐境外")
		说明 = format("高小姐已不在迷恋天蓬元帅，拿回#G婚书#W给#Y天蓬元帅#R(%s,%s)#W化解这‘怖’之情吧。", self.快捷坐标.X, self.快捷坐标.Y)
	elseif 进程 == 27 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "嫦娥", nil, "月宫")
		说明 = format("上月宫找#Y嫦娥仙子#R(%s,%s)#W解除天蓬元帅的‘嗔’之情。", self.快捷坐标.X, self.快捷坐标.Y)
	elseif 进程 == 28 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "杨戬", nil, "凌霄宝殿")
		说明 = format("前往天宫找可恶的#Y杨戬#R(%s,%s)#W讨回两人定情之物绿烟如梦。", self.快捷坐标.X, self.快捷坐标.Y)
	elseif 进程 == 29 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "慧觉和尚", 1070)
		说明 = format("去#G长寿村#W的#Y慧觉和尚#R(%s,%s)#W那里打探下绿烟如梦的情况。", self.快捷坐标.X, self.快捷坐标.Y)
	elseif 进程 == 30 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "嫦娥", nil, "月宫")
		说明 = format("#G绿烟如梦#W破碎了。拿回给#Y嫦娥仙子#R(%s,%s)#W想想办法吧。", self.快捷坐标.X, self.快捷坐标.Y)
	elseif 进程 == 31 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "天蓬元帅", nil, "大唐境外")
		说明 = format("嫦娥仙子的一滴泪让#G绿烟如梦#W恢复原状，快拿回给#Y天蓬元帅#R(%s,%s)#W恢复记忆吧。", self.快捷坐标.X, self.快捷坐标.Y)
	elseif 进程 == 32 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "土地公公", nil, "大唐境外")
		说明 = format("最后是找春十三娘解除四情之“爱”。盘丝岭的位置？还是得问问#G大唐境外#W的#Y土地公公#R(%s,%s)#W。", self.快捷坐标.X, self.快捷坐标.Y)
	elseif 进程 == 33 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "白晶晶", nil, "盘丝洞")
		说明 = format("原来盘丝岭内讧了，快劝#G盘丝洞#W内的#Y白晶晶#R(%s,%s)#W不要冲动犯事。", self.快捷坐标.X, self.快捷坐标.Y)
	elseif 进程 == 34 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "至尊宝", nil, "大唐境外")
		说明 = format("据说山寨的大帮主知晓孙悟空的下路，去境外找#Y至尊宝#R(%s,%s)#W问个明白。", self.快捷坐标.X, self.快捷坐标.Y)
	elseif 进程 == 35 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "二帮主", nil, "大唐境外")
		说明 = format("大帮主疯疯癫癫，去大唐境外找真正的#Y二帮主#R(%s,%s)#W问个明白。", self.快捷坐标.X, self.快捷坐标.Y)
	elseif 进程 == 36 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "江湖奸商", nil, "北俱芦洲")
		说明 = format("去北俱芦洲寻找蛇蝎美人，听说#G北俱芦洲#W的#Y江湖奸商#R(%s,%s)#W那儿有。", self.快捷坐标.X, self.快捷坐标.Y)
	elseif 进程 == 37 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "辛发明", nil, "凤巢一层")
		说明 = format("去北俱芦洲#G凤巢#W的#Y辛发明#R(%s,%s)#W那里寻找定神香。", self.快捷坐标.X, self.快捷坐标.Y)
	elseif 进程 == 38 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "龙神", nil, "龙窟二层")
		说明 = format("去北俱芦洲#G龙窟#W的#Y龙神#R(%s,%s)#W那里寻找五龙丹。", self.快捷坐标.X, self.快捷坐标.Y)
	elseif 进程 == 39 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "至尊宝", nil, "大唐境外")
		说明 = format("集齐了三种药材，将蛇蝎美人交给#Y至尊宝#R(%s,%s)#W吧。", self.快捷坐标.X, self.快捷坐标.Y)
	elseif 进程 == 40 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "至尊宝", nil, "大唐境外")
		说明 = format("集齐了三种药材，将定神香交给#Y至尊宝#R(%s,%s)#W吧。", self.快捷坐标.X, self.快捷坐标.Y)
	elseif 进程 == 41 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "至尊宝", nil, "大唐境外")
		说明 = format("集齐了三种药材，将五龙丹交给#Y至尊宝#R(%s,%s)#W吧。", self.快捷坐标.X, self.快捷坐标.Y)
	elseif 进程 == 42 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "白晶晶", nil, "盘丝洞")
		说明 = format("拿着孙悟空的信物#R玉佩#W回去#G盘丝洞#W交给#Y白晶晶#R(%s,%s)#W。", self.快捷坐标.X, self.快捷坐标.Y)
	elseif 进程 == 43 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "土地公公", nil, "大唐境外")
		说明 = format("晶晶姑娘杀去盘丝洞了，快去找境外的#Y土地公公#R(%s,%s)#W阻止她。", self.快捷坐标.X, self.快捷坐标.Y)
	elseif 进程 == 44 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "天蓬元帅", nil, "大唐境外")
		说明 = format("现在四情终于破解，可以回去境外#Y天蓬元帅#R(%s,%s)#W那解开他的心结了。", self.快捷坐标.X, self.快捷坐标.Y)
	elseif 进程 == 45 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "至尊宝", nil, "大唐境外")
		说明 = format("天蓬元帅已经大彻大悟，现在去境外告诉#Y至尊宝#R(%s,%s)#W晶晶已经死这个消息吧。", self.快捷坐标.X, self.快捷坐标.Y)
	elseif 进程 == 46 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "观音姐姐", nil, "潮音洞")
		说明 = format("去普陀山潮音洞找#Y观音姐姐#R(%s,%s)#W借灵光宝匣一用看看过去到底发生了什么事。", self.快捷坐标.X, self.快捷坐标.Y)
	elseif 进程 == 47 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "至尊宝", nil, "大唐境外")
		说明 = format("灵光宝匣借不成。先听观音姐姐的话，回境外找#Y至尊宝#R(%s,%s)#W。", self.快捷坐标.X, self.快捷坐标.Y)
	elseif 进程 == 48 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "地藏王", 1124)
		说明 = format("到地府找#Y地藏王#R(%s,%s)#W帮忙。", self.快捷坐标.X, self.快捷坐标.Y)
	elseif 进程 == 49 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "吊死鬼", nil, "地狱迷宫二层")
		说明 = format("到#G地狱迷宫二层#W找看守#Y吊死鬼#R(%s,%s)#W求他把晶晶魂魄带来吧。", self.快捷坐标.X, self.快捷坐标.Y)
	elseif 进程 == 50 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "晶晶姑娘的鬼魂", nil, "地狱迷宫四层")
		说明 = format("摆平了这啰嗦的看守，终于可以去#G地狱迷宫四层#W找#Y晶晶姑娘的鬼魂#R(%s,%s)#W了。", self.快捷坐标.X, self.快捷坐标.Y)
	elseif 进程 == 51 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "观音姐姐", nil, "潮音洞")
		说明 = format("晶晶姑娘的鬼魂犹有怨气未消，帮她去普陀山潮音洞内找#Y观音姐姐#R(%s,%s)#W问清事实。", self.快捷坐标.X, self.快捷坐标.Y)
	elseif 进程 == 52 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "无心", nil, "凤巢七层")
		说明 = format("只得去北俱芦洲#G凤巢七层#W找叫#Y无心#R(%s,%s)#W的和尚了。", self.快捷坐标.X, self.快捷坐标.Y)
	elseif 进程 == 53 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "青灵玄女", nil, "龙窟七层")
		说明 = format("只得去北俱芦洲#G龙窟七层#W找#Y青灵玄女#R(%s,%s)#W要回定海珠。", self.快捷坐标.X, self.快捷坐标.Y)
	elseif 进程 == 54 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "无心", nil, "凤巢七层")
		说明 = format("回去#G凤巢七层#W将#R定海珠#W交给#Y无心和尚#R(%s,%s)#W。", self.快捷坐标.X, self.快捷坐标.Y)
	elseif 进程 == 55 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "观音姐姐", nil, "潮音洞")
		说明 = format("了解孙悟空和云霓的恩怨情仇，回去普陀山潮音洞拜见#Y观音姐姐#R(%s,%s)#W。", self.快捷坐标.X, self.快捷坐标.Y)
	elseif 进程 == 56 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "至尊宝", nil, "大唐境外")
		说明 = format("拿着观音姐姐赐予的金箍回去境外交给#Y至尊宝#R(%s,%s)#W点化孙悟空。", self.快捷坐标.X, self.快捷坐标.Y)
	elseif 进程 == 57 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "晶晶姑娘的鬼魂", nil, "地狱迷宫四层")
		说明 = format("把孙悟空和云霓的爱恋之心带去#G地狱迷宫四层#W给#Y晶晶姑娘的鬼魂#R(%s,%s)#W看。", self.快捷坐标.X, self.快捷坐标.Y)
	elseif 进程 == 58 then
		self.快捷坐标 = 快捷设置任务坐标(id, 任务id, "至尊宝", nil, "大唐境外")
		说明 = format("回去境外告知#Y至尊宝#R(%s,%s)#W晶晶姑娘已大彻大悟。", self.快捷坐标.X, self.快捷坐标.Y)
	end

	任务数据[任务id].地图编号 = self.快捷坐标.地图编号
	任务数据[任务id].名称 = self.快捷坐标.名称
	玩家数据[id].角色.数据.当前剧情 = {
		任务 = "八戒悟空",
		地图 = self.快捷坐标.地图编号,
		名称 = self.快捷坐标.名称,
		进程 = 进程
	}

	return {
		名称,
		说明,
		备注,
		坐标 = self.快捷坐标
	}
end

function 任务处理类:添加雪人任务(id)
	if 玩家数据[id].角色:取任务(7760) ~= 0 then
		添加最后对话(id, "你已经领取过该任务抓紧去完成吧！")

		return
	elseif 雪人限制[id] ~= nil and 雪人限制[id] >= 50 then
		添加最后对话(id, "你今天的雪人任务已经完成了(单日最多完成50次)！")

		return
	end

	local 任务id = id .. "_7760_" .. os.time()
	任务数据[任务id] = {
		类型 = 7760,
		结束 = 9999999,
		领取人id = {
			id
		},
		id = 任务id,
		起始 = os.time(),
		玩家id = id,
		队伍组 = {},
		门派师傅 = 玩家数据[id].最后对话.名称
	}

	if ygsj() <= 40 then
		local 序列 = 取随机数(1, #Q_随机人物)
		任务数据[任务id].人物 = Q_随机人物[序列].名称[取随机数(1, #Q_随机人物[序列].名称)]
		任务数据[任务id].地图编号 = Q_随机人物[序列].地图
		任务数据[任务id].分类 = 1

		添加最后对话(id, format("我无法移动,还忘少侠去寻找%s的%s为其送上新春祝福。", 取地图名称(任务数据[任务id].地图编号), 任务数据[任务id].人物))
	else
		local 临时物品 = {
			"高级魔兽要诀",
			"魔兽要诀",
			"魔兽要诀",
			"魔兽要诀",
			"超级金柳露",
			"金柳露"
		}
		任务数据[任务id].物品 = 临时物品[取随机数(1, #临时物品)]
		任务数据[任务id].分类 = 2

		添加最后对话(id, format("听说%s甚是神异,还请少侠找来交给我吧。", 取装备详细说明(任务数据[任务id].物品)))
	end

	玩家数据[id].角色:添加任务(任务id)

	if 雪人限制[id] == nil then
		雪人限制[id] = 1
	else
		雪人限制[id] = 雪人限制[id] + 1
	end
end

function 任务处理类:设置雪人物品(id, 任务id)
	local 等级 = 玩家数据[id].角色.数据.等级
	local 临时等级 = 等级
	local 药品名称 = {}

	if ygsj() <= 50 then
		if 等级 <= 60 then
			药品名称 = {
				"四叶花",
				"紫丹罗",
				"佛手",
				"鬼切草",
				"女儿红"
			}
		elseif 等级 <= 90 then
			药品名称 = {
				"四叶花",
				"紫丹罗",
				"佛手",
				"鬼切草",
				"鹿茸",
				"仙狐涎",
				"地狱灵芝",
				"六道轮回",
				"紫石英",
				"烤鸭",
				"珍露酒",
				"佛跳墙",
				"臭豆腐",
				"翡翠豆腐",
				"豆斋果"
			}
		else
			药品名称 = {
				"豆斋果",
				"佛跳墙",
				"长寿面",
				"醉生梦死",
				"九转回魂丹",
				"蛇胆酒",
				"佛光舍利子",
				"金香玉",
				"小还丹",
				"蛇蝎美人",
				"风水混元丹",
				"千年保心丹",
				"定神香",
				"五龙丹",
				"十香返生丸"
			}
		end

		任务数据[任务id].物品 = 药品名称[取随机数(1, #药品名称)]

		if 等级 > 90 then
			local 临时品质 = 63

			if 等级 >= 120 then
				临时品质 = 96
			end

			if 等级 >= 140 then
				临时品质 = 129
			end

			任务数据[任务id].品质 = 临时品质
		end
	else
		local 临时限制 = {
			1,
			3
		}

		if 等级 <= 50 then
		elseif 等级 <= 70 then
			临时限制 = {
				2,
				4
			}
		elseif 等级 <= 130 then
			临时限制 = {
				5,
				7
			}
		else
			临时限制 = {
				6,
				8
			}
		end

		临时限制 = 取随机数(临时限制[1], 临时限制[2])
		local 物品名称 = 玩家数据[id].装备.打造物品[取随机数(1, 23)][临时限制 + 1]

		if type(物品名称) == "table" then
			物品名称 = 物品名称[取随机数(1, #物品名称)]
		end

		任务数据[任务id].物品 = 物品名称
	end
end

function 任务处理类:完成雪人任务(id)
	local 任务id = 玩家数据[id].角色:取任务(7760)

	if 玩家数据[id].角色.数据.春节雪人 == nil then
		玩家数据[id].角色.数据.春节雪人 = 2
	else
		玩家数据[id].角色.数据.春节雪人 = 玩家数据[id].角色.数据.春节雪人 + 1
	end

	玩家数据[id].角色:添加储备(20000, "雪人物品任务", 1)
	玩家数据[id].角色:添加经验(50000, "雪人物品任务", 1)
	常规提示(id, "#Y/你获得了1点雪人积分！")
	玩家数据[id].角色:取消任务(任务id)

	for i, v in pairs(雪人活动) do
		if i ~= "上限" and v < 雪人活动.上限 then
			雪人活动[i] = 雪人活动[i] + 1

			return
		end
	end

	for i, v in pairs(玩家数据) do
		if 玩家数据[i] ~= nil and 玩家数据[i].管理 == nil then
			玩家数据[i].道具:发放雪人奖励(i)
		end
	end

	for i, v in pairs(雪人活动) do
		if i ~= "上限" then
			雪人活动[i] = 0
		end
	end
end

function 任务处理类:开启三界书院()
	三界书院 = {
		答案 = "",
		开关 = true,
		结束 = 65,
		起始 = os.time(),
		间隔 = 取随机数(30, 90) * 60,
		名单 = {}
	}
	local 题目序号 = 取随机数(1, #三界题库 - 1)
	三界书院.答案 = 三界题库[题目序号].答案

	广播消息({
		频道 = "xt",
		内容 = "#Y/大家好，又到了考验大家知识水平的时间了。60秒内在世界频道中回答正确的玩家可以获得丰厚奖励噢。问题如下：#W/" .. 三界题库[题目序号].问题 .. "？"
	})
	发送公告("#Y大家好，又到了考验大家知识水平的时间了。60秒内在世界频道中回答正确的玩家可以获得丰厚奖励噢！")
end

function 任务处理类:显示(x, y)
end

return 任务处理类
